我正在嘗試編寫一個Apps Script函數來編輯電子表格中的列。
具體來說,我有一列包含兩個值。值為“是”和“否”。
每個星期天早上,我都想觸發我的函數運行,并將任何“是”值切換為“否”值。
我嘗試了幾種方法,但都沒有取得成效。當我嘗試從電子表格運行腳本時,我在執行歷史記錄中得到一個空白的返回。
下面是代碼。
function resetContactCol() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var things = sheet.getRange("G1:G100");
console.log(things.length);
for (var i = 0; i < things.length; i++) {
if (things.getCell(i, 1).getValue() === "Yes") {things.getCell(i,1).setValue("No")}
}
}
值得注意的是,控制臺日志打印為undefined。
我對Apps Script非常陌生,但在Java和Java Script.我想我錯過了一些簡單的東西!
使用getNumRows()代替.length
運行代碼時未定義的原因是
var things = sheet.getRange("G1:G100");
是在G1:G100
范圍內使用的,而不是在該范圍內的值上使用的。如果你想讓它返回100
,請添加.getValues()
我稍微修改了你的代碼,并使用getNumRows()來獲取該范圍內的行數。
以下是修改后的代碼:
如果你想使用
.length
,這是你的代碼的修改版本:References:
getNumRows()
getCell()
getValues()