Google电子表格脚本。仅适用于一张纸

时间:2013-02-14 21:51:21

标签: javascript google-apps-script google-sheets

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

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结尾时,脚本才有效。但它不起作用。

1 个答案:

答案 0 :(得分:0)

你有正确的想法,但sheet是一个工作表对象,而.match()是一个String方法。使用Sheet.getSheetName()方法获取工作表的名称(选项卡上的文字)。

onEdit()中,您通常希望在不投入大量处理时间的情况下进行纾困,因此您应该尽早对表格名称进行测试。

如果你想完全匹配"Sheet13",你应该测试一下 - 因为你的正则表达式也会匹配“Apollo13”和“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());

    }
}