【发布时间】:2020-07-16 18:43:42
【问题描述】:
我正在使用以下过滤器功能将数据从一张纸复制到另一张纸, 如果列 Q23 = FALSE,则过滤掉,以便仅将数据保存在“数据条目”中。 我已经将 Q23 视为文本 (=TO_TEXT(R29))
function SubmitData01() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var where = ss.getSheetByName('Data Entry');
var triggerCell = where.getRange('Q29').getValue();
if (triggerCell == 'TRUE'){} else // If the cell is true do nothing
if (triggerCell == 'FALSE'){ // If the cell is false run the script
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName('Data Entry');
var datasheet = ss.getSheetByName('Address');
var values = [[formSS.getRange("A29").getValue(),
formSS.getRange("I9").getValue(),formSS.getRange("E9").getValue(),
formSS.getRange("E10").getValue(),]];
datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 4).setValues(values);
}
当我使用上述脚本时,我收到错误消息:
“无法读取 null 的属性 'getRange'(第 5 行,文件“已保存”)”。
【问题讨论】:
-
历史悠久的故事:
var where = ss.getSheetByName('Data Entry');。您可能打错了工作表名称(或者没有这样的工作表),因此null(getSheetByName在找不到时返回它) -
谢谢@OlegValter,我已经修改过了。
-
Kat,感谢您的确认,很高兴您解决了这个问题 - 我投票结束这个问题,因为它只是错字(虽然 ziganotschka 的回答提供了价值,所以问答值得保留)
标签: google-apps-script google-sheets