使用此腳本,我可以根據 col E 中的“SI”在 col G 中自動創建時間戳。
現在我想:
1 - 當我洗掉 col E 中的現有值“SI”時,必須洗掉時間戳
2 - 所以, 如果我在 col E 中放置了與“SI”不同的值,則必須洗掉時間戳
我該如何繼續?
function onEdit(e){
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "STAMPA2" )
if(e.range.columnStart == 5 && e.value === 'SI'){
e.range.offset(0,2).setValue(new Date());
}
}
更新:根據 Cooper 和 Tanaike 的回答,我已經用這個編輯了腳本,但問題是當在 col G 中選擇“URGENTE”時,col E 中的值變為“URGENTE”,但如果我更改col G 中帶有“SI”的值,日期格式僅為 dd/mm/yyyy 而不是 dd/mm/yyyy - HH:MM(我需要)。
怎么解決?
function onEdit(e) {
var s = e.range.getSheet();
if (s.getName() == "STAMPA2" && e.range.columnStart == 5) {
if (e.value == 'SI') {
e.range.offset(0, 3).setValue(new Date());
} else {
e.range.offset(0, 3).setValue('');
}
if (e.value == 'URGENTE') {
e.range.offset(0, 3).setValue('URGENTE');
}
}
}
uj5u.com熱心網友回復:
我相信你的目標如下。
- 當 的值
SI放入“E”列時,您希望將當前日期放入“G”列。 - 當 的值
SI未放入“E”列時,您要洗掉“G”列的值。
在這種情況下,如何進行以下修改?
修改后的腳本:
function onEdit(e) {
var { range, value } = e;
var s = range.getSheet();
if (s.getName() == "STAMPA2" && range.columnStart == 5) {
range.offset(0, 2).setValue(value === 'SI' ? new Date() : "");
}
}
或者
function onEdit(e) {
var { range } = e;
var s = range.getSheet();
if (s.getName() == "STAMPA2" && range.columnStart == 5) {
range.offset(0, 2).setValue(range.getValue() === 'SI' ? new Date() : "");
}
}
添加:
對于您更新的問題,以下示例腳本如何?
function onEdit(e) {
var { range, value } = e;
var s = range.getSheet();
if (s.getName() == "STAMPA2" && range.columnStart == 5) {
var r = range.offset(0, 2);
if (value == 'SI') {
r.setValue(new Date()).setNumberFormat('dd"/"MM"/"yyyy" "HH":"mm');
} else if (value == 'URGENTE') {
r.setValue('URGENTE');
} else {
r.clearContent();
}
}
}
- 在此示例中,日期物件被放置為
dd"/"MM"/"yyyy" "HH":"mm. - 如果要將日期作為字串,也可以使用
r.setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd/MM/yyyy HH:mm"))代替r.setValue(new Date()).setNumberFormat('dd"/"MM"/"yyyy" "HH":"mm')。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/389315.html
