如何获取当前正在查看的工作表名称或索引?

时间:2017-06-29 02:29:07

标签: google-apps-script google-sheets

这是Sample Image Link

我需要当前正在查看的工作表名称或索引。 因为有很多纸张,这取决于用户点击文件的时间。 我没有在这里输入任何具体的数字或字母。 感谢。

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);

3 个答案:

答案 0 :(得分:0)

1。关于var sheet = ss.getSheets()[?];

sheet是一维数组。该数组包括电子表格中的工作表信息。 ?的{​​{1}}表示数组的索引。在您的情况下,[?]的0,1,2和3分别为工作表名称的1,2,3,4。

2。关于?

在这种情况下,它需要工作表名称。工作表名称可由var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('?');检索。脚本的示例脚本如下所示。

getSheetName()

如果我误解了你的问题,我很抱歉。

答案 1 :(得分:0)

答案 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更改为真实的监视地址之后,您需要保存脚本,然后才能开始检测更改)