繁体   English   中英

您如何使用“OnEdit”功能将谷歌表格宏设置为仅在一张纸上运行?

[英]How do you set a google sheets macro with the "OnEdit" function to run only on one sheet?

我目前正在尝试制作一个预算支出跟踪器,它会在我跟踪的每次购买旁边自动填充一个日期。 设置是在工作表 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");
        }
    }
}

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM