【发布时间】:2018-12-10 09:11:55
【问题描述】:
我正在尝试简化我的谷歌应用程序脚本代码并提高其可读性。为此,我决定编写一个函数来完成这项工作,然后调用该函数并将工作表的名称作为参数包含在内,而不是每次我想在代码中激活一个新工作表时调用 setActiveSheet() 函数这个:
function setSheet (sheetName) {
var sheetName;
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName(sheetName));
var sheet = spreadsheet.getActiveSheet();
};
例如,如果我想激活名为“学生”的工作表,我将编写以下简单代码:
setSheet("Students");
上面的代码不起作用。有什么帮助吗?
【问题讨论】:
-
这与本地和全局变量有关,在 google-apps-script 中这不像往常那么容易。见this SO question
-
一个更好的问题是为什么你需要使用
setActiveSheet以至于你甚至会想到重构它的用法。您需要更改活动工作表的唯一原因是如果您需要移动用户的视图,或者您要使用的电子表格服务方法只能在活动工作表中调用。对于大多数人来说,情况并非如此。 PS:它不起作用不是有效的问题或问题描述。 -
@tehhowch 我只是在玩代码以更好地掌握背后的逻辑。
-
@Casper 实际上很容易做到。问题是重新声明重置变量的同一个变量。
标签: function google-apps-script arguments parameter-passing