Javascript 如何根据应用程序脚本中的范围值设置条件
我需要更新代码,以便检测C列中的单元格何时“准备处理”或“完成”,然后根据插入的短语插入时间戳。 目前,时间戳自动插入A列和B列,但无论在C列中做了什么更改 我的代码:Javascript 如何根据应用程序脚本中的范围值设置条件,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我需要更新代码,以便检测C列中的单元格何时“准备处理”或“完成”,然后根据插入的短语插入时间戳。 目前,时间戳自动插入A列和B列,但无论在C列中做了什么更改 我的代码: function onEdit(e) { addTimeStamp(e); } function addTimeStamp(e) { // variables var startRow = 1; var ws = "2021"; var targetColumn = 3;
function onEdit(e) {
addTimeStamp(e);
}
function addTimeStamp(e) {
// variables
var startRow = 1;
var ws = "2021";
var targetColumn = 3;
// get modified row and columns
var row = e.range.getRow();
var col = e.range.getColumn();
if (col === targetColumn && row > startRow && e.source.getActiveSheet().getName() === ws) {
e.source.getActiveSheet().getRange(row, 2).setValue(new Date());
}
if (col === targetColumn && row > startRow && e.source.getActiveSheet().getName() === ws) {
e.source.getActiveSheet().getRange(row, 1).setValue(new Date());
}
}
如果C列中的值为“准备处理”或“已完成”,我不确定您是否要设置相同的值,或者您希望每个案例的值不同 但是下面的脚本为每种情况都包含单独的if语句,因此您可以为
“准备好处理”
和“完成”
添加不同的值,并且只对它们添加
function addTimeStamp(e){
const ar = e.range;
const row = ar.getRow();
const col = ar.getColumn();
const as = ar.getSheet();
if (as.getName()=="2021" && col == 3 && row > 1){
if(ar.getValue()=="Ready to process" && as.getRange(row,1).getValue()==''){
as.getRange(row,1).setValue("valueA");
}
else if (ar.getValue()=="Completed" && as.getRange(row,1).getValue()==''){
as.getRange(row,1).setValue("valueB");
}
}
}
谢谢我看到它起作用了!!不管怎样,如果我想阻止第一个新日期(),并且在某个用户再次更改状态时不更新,我该如何管理它?@NicolasMEDVEDY我更新了我的答案。只有当对应的单元格为空时,才能输入新值,否则保持原样。因此,旧的日期将留在那里。考虑一下接受/投票的答案,如果它通过点击答案左边的投票/滴答按钮来解决你的问题。