[英]How to time stamp when a cell was updated in Google Sheets using scripts?
[英]How to time stamp more than one cell on Google Sheets?
目前在我的Gooogle工作表文檔中有4個定期更新的單元格。 每次更新時,我都想給一個單獨的單元加時間戳。
我可以使附件腳本適用於1個單元格,但是當我復制腳本使其適用於另一個單元格時,它將停止較早版本的腳本。
function onEdit(event)
{
var timezone = "GMT+1";
var timestamp_format = "dd-MM-yyyy hh:mm:ss";
var updateColName = "Development Team Comments";
var timeStampColName = "To update select cell";
var sheet = event.source.getSheetByName('WIP');
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) {
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
我也嘗試過此代碼,該代碼似乎不適用於后續單元:
function onEdit(event)
{
var timezone = "GMT+1";
var timestamp_format = "dd-MM-yyyy hh:mm:ss"; // Timestamp Format.
var updateColName = "Development Team Comments";
var timeStampColName = "To update select cell";
var sheet = event.source.getSheetByName('WIP'); //Name of the sheet where you want to run this script.
var responseArray = ["o update select cell", "Bupa time stamp","Date Stamp Move Live"];
var questionArray = ["Development Team Comments", "BDC proofing comments", "Approved Y"];
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
我希望我應該能夠做的是能夠更新任何單元格,並像上面的腳本一樣為它們顯示當前時間。 我是否需要重復此操作,或者是否有插入單元格引用的方法。
看起來您的腳本對於您實際需要的內容而言非常復雜,它會檢查所有標onEdit(e)
,當您實際需要的只是基於if
語句的幾個setValue()
,將其放入onEdit(e)
觸發器中就可以了!
function onEdit(e) {
var sheet = e.source.getSheetByName('WIP');
var timezone = 'GMT+1';
var format = 'dd-MM-yyyy hh:mm:ss';
var cell = e.range;
var row = cell.getRow();
var col = cell.getColumn();
var stamp = Utilities.formatDate(new Date(), timezone, format);
if (col === 1) { //if edited cell is in column A
sheet.getRange(row, 4).setValue(stamp); //set timestamp in column D
}
if (col === 2) { //if edited cell is in column B
sheet.getRange(row, 5).setValue(stamp); //set timestamp in column E
}
if (col === 3) { //if edited cell is in column C
sheet.getRange(row, 6).setValue(stamp); //set timestamp in column F
}
}
該腳本將適用於C列,如果要添加更多內容,您只需調整if
語句中的數字和getRange()
即可滿足您的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.