我需要当前正在查看的工作表名称或索引。 因为有很多纸张,这取决于用户点击文件的时间。 我没有在这里输入任何具体的数字或字母。 感谢。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[?]; <==
var range = ss.getRange("D5:D42");
range.copyValuesToRange(ss, 9, 9, 5, 42);
或
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('?'); <==
var range = ss.getRange("D5:D42");
range.copyValuesToRange(ss, 9, 9, 5, 42);
答案 0 :(得分:0)
var sheet = ss.getSheets()[?];
sheet
是一维数组。该数组包括电子表格中的工作表信息。 ?
的{{1}}表示数组的索引。在您的情况下,[?]
的0,1,2和3分别为工作表名称的1,2,3,4。
?
在这种情况下,它需要工作表名称。工作表名称可由var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('?');
检索。脚本的示例脚本如下所示。
getSheetName()
如果我误解了你的问题,我很抱歉。
答案 1 :(得分:0)
您正在寻找getActiveSheet
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getActiveSheet()
答案 2 :(得分:0)
只要...
A)该脚本是从Google表格的“工具”菜单创建的(即它们已链接),并且
B)已经为该脚本设置了onEdit触发器(使用“编辑”>“当前项目的触发器”),
...以下内容应成功提供工作表名称,单元格地址,编辑者的用户名和所做的编辑内容;向指定地址发送电子邮件以进行监控:
for k, v := range tmpl {
if innerMap, ok := v.(map[string]interface{}); ok {
if src2, ok2 := src[k].(map[string]interface{}); ok2 {
dst[k] = procMap(innerMap, src2)
} else {
log.Printf("src is not conform to template at key %q", k)
}
} else {
dst[k] = src[k]
}
}
(在粘贴代码并将example@gmail.com更改为真实的监视地址之后,您需要保存脚本,然后才能开始检测更改)