多张纸上的自动日期戳

时间:2016-01-27 16:07:03

标签: google-apps-script

我非常非常擅长这一点。提前抱歉我的无知。

我正在尝试自动填充多个工作表中包含日期的列。我有4张不同的纸张,当我将数据输入第二列时,我正试图在第一列上自动填写日期戳。我希望在所有4张纸上完全采取同样的措施。我可以一次成功获得1张表,但不是全部4.

我知道要求脚本为我们约会事情似乎非常挑剔,但它会帮助我们的数据录入人员相当多。

这就是我所拥有的:

function onEdit(event) {
     var sheetName = 'Customer Received',
         watchCol = [2], 
         stampCol = [1],
         ind = watchCol.indexOf(event.range.columnStart);
     if (event.source.getActiveSheet()
         .getName() !== sheetName ||  ind == -1 || event.range.rowStart < 4) return;
    event.source.getActiveSheet()
             .getRange(event.range.rowStart, stampCol[ind])
             .setValue(event.value ? new Date() : null);
 }

此脚本在ONE工作表上执行所需的操作。我尝试创建3个与上面完全相同的脚本,只需将“Customer Received”替换为其他工作表名称;这导致这些表中只有一个正常运行。我从下面的帖子中了解到,我无法为一张表单执行多个onEdit脚本,这就是为什么我的第一次尝试无效。

Google script to work across multiple sheets

我在这两个主题的帮助下得到了这么多(加上我现在找不到的一个;我没有加书签):

Auto-updating column in Google Spreadsheet showing last modify date

Google Spreadsheet Timestamp?

基本上,我在这个网站上找到了很多帮助,以便为我提供一些问题的答案,但我还没有完全解决问题。 你们任何人都可以把剩下的部分推给我吗? :)我正在寻找甚至可能吗?

1 个答案:

答案 0 :(得分:0)

删除对工作表名称的检查将使其适用于特定工作表中的所有工作表

function onEdit(event) {
     var watchCol = [2], 
         stampCol = [1],
         ind = watchCol.indexOf(event.range.columnStart);

     if (ind == -1 || event.range.rowStart < 4) return;

     event.source.getActiveSheet()
       .getRange(event.range.rowStart, stampCol[ind])
       .setValue(event.value ? new Date() : null);
 }