Google apps script 使用VLOOKUP-googlesheet检测单元格上的编辑

Google apps script 使用VLOOKUP-googlesheet检测单元格上的编辑,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我有一份有两张纸的文件。 我在(Q)列的第一张纸上使用Vlookup从第二张纸上获取数据 一切正常 我的谷歌工作表与Zapier一起用于更新Shopify商店中的数据。如果在我的第一张工作表中修改了选定列(N或Q)上的单元格,则会在我的文件的O列中添加一个修改日期,从而触发Zapier任务 如果在N列中修改数据,一切都正常 但是它在包含VLOOKUP公式的列Q中不起作用。如果我在Q中手动添加了一些东西(不是公式),它就起作用了,但是来自VLOOKUP公式的所有内容都不会被视为编辑 我正在使用以下

我有一份有两张纸的文件。 我在(Q)列的第一张纸上使用Vlookup从第二张纸上获取数据

一切正常

我的谷歌工作表与Zapier一起用于更新Shopify商店中的数据。如果在我的第一张工作表中修改了选定列(N或Q)上的单元格,则会在我的文件的O列中添加一个修改日期,从而触发Zapier任务

如果在N列中修改数据,一切都正常

但是它在包含VLOOKUP公式的列Q中不起作用。如果我在Q中手动添加了一些东西(不是公式),它就起作用了,但是来自VLOOKUP公式的所有内容都不会被视为编辑

我正在使用以下应用程序脚本扫描编辑

我的脚本如何将VLOOKUP更改检测为编辑

function onEdit(e) {
  // Your sheet params
  var sheetName = "Inventaire";
  var dateModifiedColumnLetter = 'O';


  var range = e.range; // range just edited
  var sheet = range.getSheet();
  if (sheet.getName() == sheetName) {
 

    // If the column isn't our modified date column
    if (range.getColumn() == 14 || range.getColumn() == 17 ) { 
      var row = range.getRow();
      var time = new Date();
      time = Utilities.formatDate(time, "GMT-04:00", "MM/dd/yy, HH:mm:ss");
      var dateModifiedRange = sheet.getRange(dateModifiedColumnLetter + row.toString());
      dateModifiedRange.setValue(time);
    };
  };
};

onEdit()触发器仅在用户编辑时创建。无需工作。

谢谢您的帮助。我没意识到这只是由人类行为触发的。所以我想我必须在我的第二张纸上检测到人类的变化,然后更新我的第一张纸。我不知道如何通过应用程序脚本更新另一张工作表。我看到了,但我不知道如何在两张纸之间切换。首先,我不得不为我糟糕的英语技能道歉。我能确认我对你的问题的理解吗?在您的情况下,当Zapier更新电子表格时,列“N”被更新,列“Q”的值被VLOOKUP公式更改。我的理解正确吗?如果我误解了你的情况,我可以问你详细情况吗?@Tanaike事实上,如果列“N”或“Q”被更改,Zapier会更新我的Shopify商店。所以我的谷歌表就是触发我的Zapier的那个。我从Cooper那里了解到,onEdit()触发器仅在用户编辑时创建。因此,Q由公式编辑,然后被onEdit()忽略。因此,现在我正试图通过我的应用程序脚本,在编辑第二张工作表时更新我的第一张工作表数据。谢谢您的回复。从您的回复中,我了解到在您的情况下,当手动更新电子表格时,会调用Zapier。我原以为当Zapier更新电子表格时,电子表格的“N”列也会更新。我注意到我误解了你的处境。我为此道歉。