Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何将google sheets宏设置为;OnEdit“;函数是否仅在一张图纸上运行?_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script 如何将google sheets宏设置为;OnEdit“;函数是否仅在一张图纸上运行?

Google apps script 如何将google sheets宏设置为;OnEdit“;函数是否仅在一张图纸上运行?,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我目前正在尝试制作一个预算支出跟踪程序,它会自动填充我跟踪的每次购买旁边的日期。第2页的设置是,c列是我添加费用的地方,B列是应该添加日期的地方。我当前使用的代码粘贴在下面 `function onEdit(e) { var row = e.range.getRow(); var dateCell = e.range.getSheet().getRange(row, 2); if (!dateCell.getValue()) { dateCell.setValue(new D

我目前正在尝试制作一个预算支出跟踪程序,它会自动填充我跟踪的每次购买旁边的日期。第2页的设置是,c列是我添加费用的地方,B列是应该添加日期的地方。我当前使用的代码粘贴在下面

`function onEdit(e) {
  var row = e.range.getRow();
  var dateCell = e.range.getSheet().getRange(row, 2);
  if (!dateCell.getValue()) {
    dateCell.setValue(new Date()).setNumberFormat("MM/dd/YY");
  }
}`
除了一件事,它在每个电子表格中都处于激活状态,而不仅仅是电子表格2。如何设置代码,使其仅在电子表格2中的另一列更改时运行


谢谢你

为了让你的
onEdit(e)
触发器只在
Sheet2
上工作,你应该添加一个
if
条件,检查工作表的名称是否是你想要执行触发器的名称

假设图纸名称为
“Sheet2”
,您可以尝试以下操作:

function onEdit(e) {
    var sheet = e.range.getSheet();
    if (sheet.getName() === "Sheet2") {
        var row = e.range.getRow();
        var dateCell = sheet.getRange(row, 2);
        if (!dateCell.getValue()) {
            dateCell.setValue(new Date()).setNumberFormat("MM/dd/YY");
        }
    }
}
参考