![](/img/trans.png)
[英]Google Apps Script Copying Specific Range from any tab to a Master Sheet
[英]Apps script to update timestamp in one cell on each tab in a google sheet upon any edit of that tab
我有第三方為我更新了谷歌表格,並且想要一個簡單的腳本,在對該選項卡進行任何編輯時,在腳本的每個選項卡的單元格 B1 中顯示時間戳。 因此,如果以任何方式編輯 Sheet1,Sheet1 的單元格 B1 將更新時間戳。 與 Sheet2 相同。 我有一個適用於 Sheet2 的腳本,但不適用於 Sheet1。 如果我刪除第二個函數,它適用於 Sheet1。 我確定我做錯了,希望能得到任何幫助。 這是我現在擁有的:
function onEdit() {
SpreadsheetApp.getActive().getSheetByName("Sheet1").getRange("B1").setValue(new Date());
}
function onEdit() {
SpreadsheetApp.getActive().getSheetByName("Sheet2").getRange("B1").setValue(new Date());
}
您是否知道 onEdit 始終需要在電子表格中進行手動編輯這一事實? 某些第三方應用程序對工作表的更新不會被視為編輯,因此不會更新時間戳。
如果您手動編輯電子表格(工作表),您可以嘗試
function onEdit(e) {
e.source.getActiveSheet().getRange('B1').setValue(new Date());
}
由於 JavaScript 的工作方式,單個 Google Apps 腳本項目不必使用onEdit
函數。
以下代碼示例使用 if 語句和 on edit 事件對象僅將時間戳添加到已編輯的工作表
function onEdit(e) {
const name = e.range.getSheet().getName();
if(name === 'Sheet1') e.source.getSheetByName("Sheet1").getRange("B1").setValue(new Date());
if(name === 'Sheet2') e.source.getSheetByName("Sheet2").getRange("B1").setValue(new Date());
}
嘗試這個:
function onEdit(e) {
const sh = e.range.getSheet();
const shts = ["Sheet1","Sheet2"];//Add the sheet names you wish it to work on
if(~shts.indexOf(sh.getName())) {
sh.getRange("B1").setValue(new Date());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.