谷歌电子表格脚本.仅适用于一张图纸

Google Spreadsheet Script. Only work for one sheet

本文关键字:一张 电子表格 脚本 适用于 谷歌      更新时间:2023-09-26

我在网上找到了这段代码,它可以根据需要工作,但如果你想调用它们,它适用于我的所有工作表或底部的选项卡。我希望它能工作

function onEdit(event) 
{
    var sheet = event.source.getActiveSheet();
    var eventRange = event.source.getActiveRange();
    var eventColumn = eventRange.getLastColumn();
    if (eventColumn == 1) 
    {
      var stampRange = eventRange.offset(0,10);
      stampRange.setValue(new Date());
    }
} 

这是原始代码,我尝试在第4行添加以下内容,但我无法使其工作。我对javascript没有经验,但我需要你的帮助,因为我正在尽我所能。非常感谢。

if(sheet.match(/*.13/)){

这是我添加的行。根据我在网上的阅读,只有当表格名称以13结尾时,脚本才应该有效。但它不起作用。

您的想法是正确的,但sheet是一个Sheet对象,而.match()是一个String方法。使用Sheet.getSheetName()方法获取图纸的名称(选项卡上的单词)。

onEdit()中,您通常希望在不投入太多处理时间的情况下退出,因此应该尽早对工作表名称进行测试。

如果你想精确匹配"Sheet13",你应该测试一下——例如,因为你的正则表达式也会匹配"Apollo13"answers"a13a"。

function onEdit(event) 
{
    var sheetName = event.source.getActiveSheet().getSheetName();
    if (sheetName.match(/.13/) == null)
      // These aren't the droids you're looking for...
      return;
    var eventRange = event.source.getActiveRange();
    var eventColumn = eventRange.getLastColumn();
    if (eventColumn == 1) 
    {
      var stampRange = eventRange.offset(0,10);
      stampRange.setValue(new Date());
    }
}