0

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

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

4

1 回答 1

0

You've got the right idea, but sheet is a Sheet Object, while .match() is a String method. Use the Sheet.getSheetName() method to get the name of the sheet (the words on the tab).

In an onEdit(), you usually want to bail out without investing much processing time, so you should put the test for the sheet name as early as possible.

If you want to match "Sheet13" exactly, you should test for just that - because your regex will also match "Apollo13" and "a13a", for example.

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

    }
} 
于 2013-06-15T01:48:37.777 回答