【发布时间】:2017-05-04 01:18:01
【问题描述】:
在查看错误日志时,好像一行被调用了两次,我很困惑:
// set globals
var ss = SpreadsheetApp.getActiveSpreadsheet();
flushSheet("Daily Overall Summary", "A1");
function flushSheet(sheetname, range) {
var sheet = ss.getSheetByName(sheetname); Logger.log("sheet is " + sheet);
var the_cell = sheet.getRange(range);
var cell_content = the_cell.getValues()[0][0];
the_cell.clearContent();
the_cell.setValue(cell_content);
SpreadsheetApp.flush();
}
当我运行它时,我得到:
TypeError:无法调用 null 的方法“getRange”。 (第 8 行,文件 "forceFlush")解雇
以下是生成的日志:
[17-05-04 09:12:31:301 HKT] sheet is Sheet
[17-05-04 09:12:31:706 HKT] sheet is null
我不确定为什么 Logger.log() 会被调用两次,但我认为这暗示了我的问题。
GAS 告诉我变量 sheet 为 null,但它第一次在 sheet 上调用 getRange() 时它不为 null,正如您在第一个日志条目中看到的那样。
为什么 var sheet 等于 null 而不是 Sheet,为什么看起来事情被调用了两次?我应该怎么办?我想获取并设置 A1 的值与最初在 A1 中的值相同,因为我想做this。
【问题讨论】: