2013-01-18 83 views
0

我有一個項目跟蹤器工具。列K有一個下拉菜單,用於任務完成時。下拉菜單可以將任務設置爲「未交付」或「已交付」。我希望對L列進行編程,以便每當有人選擇一項任務爲「已交付」時,我都有該行動的時間戳。任何幫助,將不勝感激。當單元格等於特定值時在相鄰單元格中添加時間戳

回答

1

您可以使用附加到電子表格的腳本來完成此操作。如果您是電子表格中的Google Apps-Script的新手,請參閱the tutorials

這裏有一個電子表格的圖片,做你描述:

Screenshot of working spreadsheet

下面的腳本將被寫入或清除列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 
    } 
    } 
} 

要做到:此腳本假定你已經改變只是一個細胞,這意味着值複製到多個單元格不妥善處理。

相關問題