Google apps script 自动清除范围

Google apps script 自动清除范围,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想通过触发此功能每天两次清除我的Google工作表的特定范围。 我的脚本如下: function clearRange() { var sheet = SpreadsheetApp.getActive().getSheetByName('test'); sheet.getRange('inventaire!B3:E8').clearContent(); } 但我明白了 TypeError:无法调用null的方法“getSheetByName”。(第3行,文件“代码”) 我不知道为什么

我想通过触发此功能每天两次清除我的Google工作表的特定范围。
我的脚本如下:

function clearRange() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('test');
  sheet.getRange('inventaire!B3:E8').clearContent();
}
但我明白了

TypeError:无法调用null的方法“getSheetByName”。(第3行,文件“代码”)


我不知道为什么会收到此错误。

我建议您将属于范围的工作表名称作为参数传递,在本例中,
inventaire
not
test
,顺便说一句,您的应用程序没有链接到电子表格,因为
getActive
返回
null
。尝试确保脚本链接到电子表格,也可以尝试
getActiveSpreadsheet()
方法,然后编写

function clearRange() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('inventaire');
  sheet.getRange('B3:E8').clearContent();
}

现在可以工作了吗?如果此脚本未绑定到电子表格,则对
SpreadsheetApp.getActive()
的调用将返回
null
。这在文件中有说明。啊,当然可以。test是文档的名称,inventaire是工作表的名称(而不是选项卡)。它起作用了。谢谢,请按回答验证?请注意,这并不能解决OP的错误。OP的错误明确指出调用
getSheetByName
的对象是
null
——它不是
电子表格的实例。因为test不是一张表,所以它是电子表格,所以解决了这个问题。假设测试是一个工作表,在
test
sheet对象中调用另一个工作表的范围是没有逻辑的。因此,如果OP将代码分解为以下内容,您将澄清逻辑,并且用户的错误看起来更清楚:
var spreadsheet=SpreadsheetApp.getActive();var sheet=spreadsheet.getSheetByName(“某个名称”),OP得到的错误指示
电子表格
的值将为
。请求的工作表的名称并不重要,因为所操作的电子表格不存在