Google apps script 如果选中/取消选中复选框,则应用程序脚本OneEdit可跨多个工作表添加/清除时间戳
除了从//3开始的底部部分之外,我已经完成了下面的脚本。初始部分适用于我列出的第一张工作表,如果选中复选框,则添加时间戳;如果未选中复选框,则清除时间戳。但是,它只在第一张纸上工作,我也需要它在列出的第二张纸上工作。数据在每张纸上的设置不同,所以我把它们分了出来。我非常感谢任何指导,我对应用程序脚本和学习非常陌生,因此我确信这是一个新手和愚蠢的错误:Google apps script 如果选中/取消选中复选框,则应用程序脚本OneEdit可跨多个工作表添加/清除时间戳,google-apps-script,timestamp,Google Apps Script,Timestamp,除了从//3开始的底部部分之外,我已经完成了下面的脚本。初始部分适用于我列出的第一张工作表,如果选中复选框,则添加时间戳;如果未选中复选框,则清除时间戳。但是,它只在第一张纸上工作,我也需要它在列出的第二张纸上工作。数据在每张纸上的设置不同,所以我把它们分了出来。我非常感谢任何指导,我对应用程序脚本和学习非常陌生,因此我确信这是一个新手和愚蠢的错误: function onEdit(e) { var ss = SpreadsheetApp.getActiveSheet(); var
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSheet();
var r = ss.getActiveCell();
//1.Change 'Sheet1' to match your sheet name
if (r.getColumn() == 1 && ss.getName()=='Sheet1') { // 2. If Edit is done in column 1 make change in column 4(D) then:
var celladdress ='D'+ r.getRowIndex();
if(r.getValue() !="" && r.getValue() !=" "){
ss.getRange(celladdress).setValue(new Date()).setNumberFormat("MM/DD/YYYY hh:mm:ss");
} else{
ss.getRange(celladdress).clearContent();
}
//3.Change 'Sheet2' to to match your sheet name
if (r.getColumn() == 1 && ss.getName()=='Sheet2') { // 4. If Edit is done in column (G) then:
var celladdress ='G'+ r.getRowIndex();
if(r.getValue() !="" && r.getValue() !=" "){
ss.getRange(celladdress).setValue(new Date()).setNumberFormat("MM/DD/YYYY hh:mm:ss");
} else{
ss.getRange(celladdress).clearContent();
}
}
}
}
修改点:
- 在您的脚本中,我认为可以使用用于搜索图纸名称的对象。
- 在本次修改中,使用了
var obj={Sheet1:“D”,Sheet2:“G”}
- 例如,
返回obj[“Sheet1”]
。这用于修改后的脚本D
- 在本次修改中,使用了
- 关于复选框,还可以使用
检查复选框是否已选中isChecked()
- 在这种情况下,将使用事件对象。但是,如果您想在脚本编辑器中直接运行该函数,请按如下所示进行修改
- 从
var r = e.range; var ss = r.getSheet();
- 到
var ss = SpreadsheetApp.getActiveSheet(); var r = ss.getActiveCell();
- 从
var ss = SpreadsheetApp.getActiveSheet();
var r = ss.getActiveCell();