每次我在第一列中輸入時,我一直試圖在我的谷歌表中獲取時間戳,它應該在第四列中給我日期和時間戳。但是,我不知道我做錯了什么所有教程都是一年前的,而且 Google 已從 Google Sheets 的“工具”選單中洗掉了編輯腳本功能,所以我不知道如何正確連接該功能.
這是代碼:
function onEdit(e) {
var row = e.range.getRow();
var col = e.range.getColoumn();
if(col===1 && row>1 && e.source.getActiveSheet.getName()=== "Dummy1") {
e.source.getActiveSheet.getRange(row,4).setValue(new Date());
}
}
這是它給我的錯誤:
型別錯誤:無法讀取未定義 onEdit @ TimeStamp.gs:3 的屬性“范圍”
以及表格的鏈接:https : //docs.google.com/spreadsheets/d/1lBe7GDT7-yAS3GiBhoiVppIZe7gDkI3ihExmo5ZaEy8/edit?usp=sharing
uj5u.com熱心網友回復:
你有一個錯字。這是getColumn()不是getColoumn()。
也是getActiveSheet一個函式,所以它需要括號getActiveSheet()。
function onEdit(e) {
var row = e.range.getRow();
var col = e.range.getColumn();
if(col===1 && row>1 && e.source.getActiveSheet().getName()=== "Dummy1") {
e.source.getActiveSheet().getRange(row,4).setValue(new Date());
}
}
uj5u.com熱心網友回復:
此解決方案更好地利用了事件物件,并且運行速度會更快。
function onEdit(e) {
//e.source.toast('Entry');//these lines can be an aid to debugging
//Logger.log(JSON.stringify(e));//uncomment this to learn more about event object
const sh = e.range.getSheet();
if (e.range.columnStart == 1 && e.range.rowStart > 1 && sh.getName() == "Dummy1") {
e.range.offset(0, 3).setValue(new Date());
}
}
您無法從腳本編輯器運行此類函式,因為它們需要來自 onedit 觸發器的事件物件,該觸發器在您編輯電子表格上的單元格時生成。因此,要測驗它們,您只需創建它們并將它們保存為 onEdit(e) 函式,然后編輯頁面以查看它是否有效。您可以e.source.toast('flags')在不同的位置使用來幫助您確定函式中存在問題的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378473.html
標籤:javascript 谷歌应用程序脚本 谷歌表格 时间戳 dom事件
下一篇:有沒有辦法快速更新列公式?
