簡體   English   中英

Google Sheet - 在修改特定工作表上的任何單元格時添加時間戳

[英]Google Sheet - Add Timestamp When Any Cell on Specific Sheet is Modified

我有一個 Google 表格文件,其中包含許多選項卡(表格)。 我要做的是在特定頁面上的任何單元格被更新或修改時放置一個時間戳。

工作表名稱 =“數據儀表板”
在“數據儀表板”上放置時間戳的單元格是 B1。

我想知道是否在工作表上有更新時間戳的時間戳是否會創建一個循環,這樣我就可以排除第 1 行,只監視剩余的行和列。

這是我的出發點:

function onEdit(e) {
  var col = e.range.getColumn();
   if(col == 1, 2, 3, 4, 5, 6) {
    e.source.getActiveSheet().getRange(1,2).setValue(new Date())

這會將時間戳放在正確的位置,並且在我修改 AF 行中的任何內容時起作用。 但它適用於所有工作表,我需要將其限制為單張工作表。 任何幫助,將不勝感激!

從問題

我要做的是在特定頁面上的任何單元格被更新或修改時放置一個時間戳。

工作表名稱 =“數據儀表板”
在“數據儀表板”上放置時間戳的單元格是 B1。

當通過 Google Sheets UI 完成任何編輯時會觸發 onEdit 觸發器,以將時間戳的寫入限制為僅在編輯特定工作表時執行,然后您應該添加條件語句,即 if 語句。

function onEdit(e){
  /* Using a conditional operator to assign the active sheet 
     when this function is ran without providing an event object, i.e. 
     when running from the script editor */
  const sheet = e ? e.range.getSheet() : SpreadsheetApp.getActiveSheet(); 
  if(sheet.getName() === 'Data-Dashboard'){
    sheet.getRange('B1').setValue(new Date();
  }
}

關於您的起點以及在編輯列 AF 時它正在工作,值得注意的是,在評估所有部分時,只有最后一部分被視為 if 語句的條件,在本例中為 6,這是一個真實值,意思是永遠都是真的。 以下版本包含僅在編輯 Data-Dashboard 工作表中的 A 到 F 列時記錄時間戳的條件。

function onEdit(e){
  /* Using a conditional operator to assign the active sheet 
     when this function is ran without providing an event object, i.e. 
     when running from the script editor */
  const sheet = e ? e.range.getSheet() : SpreadsheetApp.getActiveSheet(); 
  if(sheet.getName() === 'Data-Dashboard' && e.range.columnStart <= 6){
    sheet.getRange('B1').setValue(new Date();
  }
}

參考

有關的

嘗試這個:

function onEdit(e) {
  const sh = e.range.getSheet();
  var col = e.range.getColumn();
  if (sh.getName() == "Your Sheet Name" && e.range.columnStart < 7 && e.range.rowStart > 1) {
    sh.getRange(1, 2).setValue(new Date());
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM