2012-08-10 80 views
0

我正在尋找一個腳本的帖子,特定工作表已被編輯,而不是當文檔中的任何工作表被修改時的幫助。onEdit時間戳爲特定工作表

這是我目前有:

function onEdit() { 
    var d = new Date(); 
    var h = d.getHours(); 
    var min = d.getMinutes(); 
    var sec = d.getSeconds(); 
    var h_str = h; 
    var min_str = min; 
    var sec_str = sec; 

// format time nicely 
    if (h < 10) 
    h_str = '0' + h; 
    if (min < 10) 
    min_str = '0' + min; 
    if (sec < 10) 
    sec_str = '0' + sec; 

// create the formatted time string 
    var time_str = h_str + ':' + min_str + ':' + sec_str; 

// create the message 
    var s = 'Roster last modified on:  ' + d.toDateString() + ' @ ' + time_str; 

// change the range 
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Infernal Dawn').getRange("A1").setValue(s);} 

這工作完全正常,只更新紙張「無間道黎明」與修改日期,但是當任何工作表被修改它還更新。

我發現有兩種不同的方式來做到這一點(一個使用gid)。唯一的問題是我在編碼方面的技能非常有限,我無法弄清楚如何將它集成到上面的代碼中。任何幫助,將不勝感激!

回答

0

函數onEdit有一個可選參數,它記住哪個單元\ range \ sheet被編輯。這個參數的結構被描述爲here

function onEdit(e) 
{ var d=new Date(); 
    var s=d.toLocaleString(); 
    if(e.source.getActiveSheet().getName()=="TheSheetThatWeWishToTrace") 
    { SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Infernal Dawn').getRange("A1").setValue(s);} 
} 
+0

優秀。這個解決方案與我找到的其他解決方案不一樣,但它運行良好,看起來不那麼複雜。在我找到if語句的位置並重新組織了一些括號後,它的工作非常完美。謝謝! – user1588989 2012-08-10 19:38:05