2012-10-13 27 views
1

我的代碼有點問題:我得到了3段代碼,但是我無法將它合併在一起。如何將多段代碼合併爲一個? (JavaScript)

當某些單元格更改時,所有三個代碼都將時間戳放在不同的單元格中。 如果我更改單元格A1,則在單元格B1中插入時間戳。如果在單元格A2中更改,則在單元格B2中插入時間戳等。

您能幫助我嗎?謝謝。

1) 

function onEdit(event) { 


    var tsheet = 'Заявки' ; 

    var lcol = 17; 
    var rcol = 17; 
    var tcol = 18; 


    var s = event.source.getActiveSheet(); 
    var sname = s.getName(); 
    if (sname == tsheet) { 
    var r = event.source.getActiveRange(); 
    var scol = r.getColumn(); 
    if (scol >= lcol && scol <= rcol) { 
     s.getRange(r.getRow(), tcol).setValue(new Date()); 
    } 
    } 

} 

2) 

function onEdit(event) { 


    var tsheet = 'Заявки' ; 

    var lcol = 15; 
    var rcol = 15; 
    var tcol = 16; 


    var s = event.source.getActiveSheet(); 
    var sname = s.getName(); 
    if (sname == tsheet) { 
    var r = event.source.getActiveRange(); 
    var scol = r.getColumn(); 
    if (scol >= lcol && scol <= rcol) { 
     s.getRange(r.getRow(), tcol).setValue(new Date()); 
    } 
    } 

} 

3) 

function onEdit(event) { 


    var tsheet = 'Заявки' ; 

    var lcol = 9; 
    var rcol = 9; 
    var tcol = 8; 


    var s = event.source.getActiveSheet(); 
    var sname = s.getName(); 
    if (sname == tsheet) { 
    var r = event.source.getActiveRange(); 
    var scol = r.getColumn(); 
    if (scol >= lcol && scol <= rcol) { 
     s.getRange(r.getRow(), tcol).setValue(new Date()); 
    } 
    } 

} 

回答

0

將列規範中的數組:

function onEdit(event) { 

    var tsheet = 'Заявки' ; 
    var colspec=[[17,17,18],[15,15,16],[9,9,8]]; 

    var s = event.source.getActiveSheet(); 
    var sname = s.getName(); 
    if (sname == tsheet) { 
    var r = event.source.getActiveRange(); 
    var scol = r.getColumn(); 
    var i=colspec.length; 
    while (i>0) { 
     i--; 
     if (scol >= colspec[i][0] && scol <= colspec[i][1]) { 
     s.getRange(r.getRow(), colspec[i][2]).setValue(new Date()); 
     } 
    } 
    } 
} 
+0

謝謝!現在工作很好。 – snoop31

相關問題