0
我有一個項目跟蹤器工具。列K有一個下拉菜單,用於任務完成時。下拉菜單可以將任務設置爲「未交付」或「已交付」。我希望對L列進行編程,以便每當有人選擇一項任務爲「已交付」時,我都有該行動的時間戳。任何幫助,將不勝感激。當單元格等於特定值時在相鄰單元格中添加時間戳
我有一個項目跟蹤器工具。列K有一個下拉菜單,用於任務完成時。下拉菜單可以將任務設置爲「未交付」或「已交付」。我希望對L列進行編程,以便每當有人選擇一項任務爲「已交付」時,我都有該行動的時間戳。任何幫助,將不勝感激。當單元格等於特定值時在相鄰單元格中添加時間戳
您可以使用附加到電子表格的腳本來完成此操作。如果您是電子表格中的Google Apps-Script的新手,請參閱the tutorials。
這裏有一個電子表格的圖片,做你描述:
下面的腳本將被寫入或清除列L的時間戳在K欄的變化作出反應,因爲它是所謂的對於電子表格中的每一項變更,它所做的第一件事情就是檢查我們所關心的變更是否已經發生,如果沒有,就退出。
/**
* This function is an auto-trigger, because of its name. It will be
* invoked on every change in the spreadsheet. The only change that
* we're interested in is in Column K, and we want to put a timestamp
* into Column L if the value selected for Column K is "Completed".
*/
function onEdit(event){
var ColK = 11; // Column Number of "K"
var changedRange = event.source.getActiveRange();
if (changedRange.getColumn() == ColK) {
// An edit has occurred in Column K
var state = changedRange.getValue();
var adjacent = event.source.getActiveSheet().getRange(changedRange.getRow(),ColK+1);
var timestamp = new Date(); // Get the current time
// We'll do something different, depending on the selected value
switch (state) {
case "Completed":
// Write timestamp into adjacent cell
adjacent.setValue(timestamp);
break;
case "Not Completed":
// Erase timestamp in adjacent cell
adjacent.clearContent();
break;
default:
// Something we didn't expect
adjacent.setValue("*ERROR*");
break
}
}
}
要做到:此腳本假定你已經改變只是一個細胞,這意味着值複製到多個單元格不妥善處理。