Google Sheet 抽取之前更新的內容
Google Sheet 如何把先前的內容析出置入在右邊的格子內。這個使用案例是我們專案經理要追蹤先前更新的內容。如果最近的更新把之前的更新蓋過去,我們就失去之前輸入的內容了。所以用以下的 Apps Script 可以自動把被蓋掉的內容複製到右邊的格子內來同時保持新和舊的內容。
首先來看看結果的影片如下。 我們在格子I3輸入一個更新。再同一個格子內再輸入一個更新的內容, 原來被複蓋的內容就自動的複製到J4格子內了。這樣就不用再複製貼上了。
首先,先到 Google Sheets 上的選單,選擇 Extensions -> App Script
然後貼上下面的小型程序。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();
var activeCell = activeSheet.getActiveCell();
var nextCell = activeCell.offset(0, 1); //Stamps the cell that is 1 to the right of the active cell [row, column]. To go left, use negative numbers
var oldValue = e.oldValue //previous update
var newValue = e.newValue //latest update
if ( activeSheet.getName() == "Vocabulary" && // change the sheet name if needed
activeCell.getColumn() == 7) { //Change the column number if needed
//nextCell.setValue(new Date() + oldValue); //last updated date + previous update
nextCell.setValue(oldValue);
}
}
/*
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
var oldValue = e.oldValue;
var noteText = 'Last modified: ' + new Date();
if (oldValue != null){
noteText += '\n' + 'Last Update: ' + oldValue;
}
range.setNote(noteText);
}*/
我以經把註解寫在程式內, 但需用改的部分如下。
- activeSheet.getName() == “Vocabulary” -> 把這個改成頁單(Sheet)的名字
- activeCell.getColumn() == 7 -> 那一行內容需要被複制。A 行就是 1 ,B 行就是 2如此類推
最後儲存後就可以測試了。