我正在嘗試創建一個 Google 表格來記錄每天完成的特定活動(給植物澆水)。我撰寫了一個腳本,這樣當每行中的復選框被選中(TRUE)時,今天的日期就會被時間戳到相鄰的列單元格中。但是我不知道每次激活復選框時如何將新的“今天日期”標記到同一行的下一個空單元格中。我想繼續將執行活動的新日期添加到同一行的相鄰空單元格中。(最終我想平均每個日期之間的天數,以便我可以收集資料并平均每個植物澆水之間的天數 - 這是一個不同的公式挑戰)。我創建的作業腳本是:
function onEdit(e){
if(e.value != "TRUE") return;
e.source.getActiveSheet().getRange(e.range.rowStart,e.range.columnStart 1).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
}
這是作業表的螢屏截圖以及我想要實作的目標: 我希望腳本能夠執行的操作的螢屏截圖可視化
如果有人可以幫助我提供有效的代碼,我們將不勝感激。謝謝!
uj5u.com熱心網友回復:
嘗試
function onEdit(e){
if(e.value != "TRUE") return;
var cel = e.source.getActiveRange()
if (cel.offset(0,1).getValue()!=""){cel = e.source.getActiveRange().getNextDataCell(SpreadsheetApp.Direction.NEXT)}
cel.offset(0,1).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
}
編輯:拖動所有日期(可選取消選中)
function onEdit(e){
if(e.value != "TRUE") return;
var cel = e.source.getActiveRange()
if (cel.offset(0,1).getValue()!=""){
var area = e.source.getActiveSheet().getRange(cel.getRow(),cel.getColumn() 1,1,cel.getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn()-cel.getColumn())
area.copyTo(area.offset(0,1),SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
}
cel.offset(0,1).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
// optional:
cel.setValue(!cel.getValue());
}
uj5u.com熱心網友回復:
嘗試這個:
function onEdit(e){
const sh = e.range.getSheet();
if(sh.getName() == 'Your sheet name' && e.value == "TRUE") {
e.range.offset(0,1).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/434966.html
