问题
I am currently using the following script to add a timestamp to a cell in Column H when cell in Column A is populated. Problem is, when I delete the contents of Column A the timestamp remains in Column H. I currently have conditional formatting to hide the timestamp if the cell is empty but I really need the contents to be deleted. How do I modify my current script to accomplish this?
function onEdit(event) {
var sheet = SpreadsheetApp.getActiveSheet();
if(sheet.getName() == "CHECK OUT" || sheet.getName() == "CHECK IN" || sheet.getName() == "MISC OUT" || sheet.getName() == "MISC IN"){
var eventRange = event.range;
if (eventRange.getColumn() == 1) { // 1 == column A
var columnARange = SpreadsheetApp.getActiveSheet().getRange(eventRange.getRow(), 8, eventRange.getNumRows(), 8);
var values = columnARange.getValues();
for (var i = 0; i < values.length; i++) {
values[i][0] = new Date();
}
columnARange.setValues(values);
}
}}
回答1:
Try this:
function onEdit(e) {
var rg=e.range;
var sh=e.range.getSheet();
var name=sh.getName();
if(name=="CHECK OUT" || name== "CHECK IN" || name== "MISC OUT" || name=="MISC IN"){
if(rg.columnStart==1) {
var vA=rg.getValues();
for(var i=0;i<vA.length;i++){
if(vA[i][0]) {
sh.getRange(rg.rowStart + i,8).setValue(new Date());
}else{
sh.getRange(rg.rowStart + i,8).setValue('');
}
}
}
}
}
来源:https://stackoverflow.com/questions/54259009/how-to-modify-current-insert-timestamp-script-to-remove-timestamp-when-cell-is-c