我正在嘗試編寫一個可以刪除具有綠色背景的行的Google表格腳本。如果在Google表格中標記爲綠色後的15分鐘內刪除了一行
更詳細的解釋:
我有一個谷歌片表,其中:
- 第一行表示列的名稱(3)
- 以下所有行表示一些3 - 列數據
我需要做的事:
當電子表格中的任何行(除第一個)被更改爲具有綠色背景時,應啓動該功能,最終將刪除綠色行的所有數據並將其背景重新設置爲白色。
什麼我迄今所做的:
我應該返回範圍的背景顏色的十六進制值的函數:
function getHexValue(range) {
return SpreadsheetApp.getActiveSheet().getRange(range).getBackground();
}
我有一個返回true
功能如果輸入的十六進制值爲綠色:
function isGreen(color) {
return ["#b6d7a8", "#d9ead3", "#93c47d", "#6aa84f", "#38761d", "#274e13"].some(function(el) { return color === el; });
}
我也嘗試循環遍歷範圍並檢查背景色以下列方式:
var ss = SpreadsheetApp.getActiveSheet();
var range = ss.getRange('A2:C');
var numRows = range.getNumRows();
for (var i = 1; i < numRows; ++i) {
Logger.log(getHexValue(ss.getRange(i, 1)));
}
不過,我不斷收到「無效座標或範圍大小」例外,因此,無法前進。此外,谷歌提示我在循環中使用getRange
函數不是一個好主意,並且會顯着減慢腳本執行速度。
如何以正確的方式處理我的任務?