这可能是太“茶”的问题:有一个代码:
function AAA1() {
var s =2,
s2 =4,
s3 =5;
var spreadsheet_id = SpreadsheetApp.getActive().getId();
var sheet_name = "Лист1";
return(s+s2+s3);
}
他是一名工人。函数调用的结果是正确的。我再添加一个变量:
var s4 = SpreadsheetApp.openById( spreadsheet_id ).getSheetByName( sheet_name ).getRange(1,1).getValues(); // это строка №7
在 Logger.log(s4) 中;结果显示正确。但是过程调用本身给出了错误: 错误:异常:您无权调用 SpreadsheetApp.openById。所需权限:https ://www.googleapis.com/auth/spreadsheets (第 7 行)
问题:在代码中引入新变量会出错吗?还是其他地方有错误?
简而言之,这是做不到的。
最有可能的问题是该函数被称为用户定义的函数。
从本质上讲,这个问题值得考虑,因为这是对流程的常见误解。
所以,在哪里看和做什么。
发射方法。很大程度上取决于启动方法,因为。相同的代码可以以不同的方式执行。这称为上下文变化。
一个常见的错误是假设编辑器中的代码有所不同。事实上,这已经是一个完整的应用程序了。许多积极使用脚本的人并不关心“从哪里运行它”,他们只需在编辑器中选择一个函数并按下开始按钮。
让我们回到羊身上。运行自定义公式时,代码上下文受到严重限制。您不能调用许多方法
SpreadsheetApp,例如openById(). 请参阅自定义函数 - 高级 - 使用 Apps 脚本服务有趣的是,这并不意味着不能这样做。例如,这里描述了该 hack snippets/spreadsheet-get_error_value_formulas。但它确实需要很好地熏制才能起飞。