我正在嘗試在 Google 表格中創建一個腳本,當在該單元格所在的行中選中一個復選框時,我可以在該單元格中輸入一個日期戳。由于網路搜索,我已經完成了第一部分,但第二部分我遇到問題的任務的一部分。
選中復選框后,日期戳確實會進入單元格,但是當我取消選中復選框時,它只會更新單元格中的日期,但不會洗掉它。
我確信我只是遺漏了一些簡單的東西,但由于我通常不編碼,甚至對公式也有一定的把握,這有點超出我的故障排除能力。如果有人能看到這個并幫助我弄清楚哪些變數會與我正在做的事情相關聯,以及哪些變數我做錯了(最好有注釋,這樣我就可以理解每一行代碼試圖做什么),我會欣賞它。
這是腳本:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Writing Team Tasks" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 5 ) { //checks that the cell being edited is in column A
var nextCell = r.offset(0, 4); { //offset for the non-adjacent column
if( r.getValue() === "") { //checks if the cell being edited is empty or not?
nextCell.setValue("");
}
else
{
nextCell.setValue(new Date());
}
}
}
}
}
我希望有一個腳本可以在選中復選框時輸入日期戳,然后在復選框未選中時洗掉日期戳。目前,我能夠做到所有這些,除了洗掉日期戳。
uj5u.com熱心網友回復:
嘗試這個:
function onEdit(e) {
const sh = e.range.getSheet();
if (sh.getName() == "Writing Team Tasks" && e.range.columnStart == 5 && e.value =="TRUE") {
e.range.offset(0,1).setValue(new Date());
}
if (sh.getName() == "Writing Team Tasks" && e.range.columnStart == 5 && e.value =="FALSE") {
e.range.offset(0,1).setValue('');
}
}
uj5u.com熱心網友回復:
如果您不必將其作為腳本執行,我寧愿先使用公式。
公式在單元格上可見,并且不會從使用作業表的人的視圖中隱藏。
為此,公式看起來像下面的日期列 (B):
| 行\列 | 一個 | 乙 |
|---|---|---|
| 1 | 完畢 | 日期 |
| 2 | ? | =IF(($A2=TRUE), 今天(), "") |
| 3 | ? | =IF(($A3=TRUE), 今天(), "") |
輸出如下所示:

基本上,它檢查單元格的值是否為 TRUE,如果是,則顯示今天的日期。如果不是,它會顯示一個空白(空)字串
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524639.html
標籤:谷歌应用脚本谷歌表格
