2016-07-14 83 views
0

當「1」的值添加到第3列時,我正在將sheet1上的一行的值複製到sheet2。而不是複製每個單元格的值,我寧願引用單元1上的單元格,以便在更新單元1上的數據時更新單元2。目前,我有:在Google表格中獲取參考

function hotList(event) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = event.source.getActiveSheet(); 
    var r = event.source.getActiveRange(); 

    if(s.getName() == "sheet1" && r.getColumn() == 3 && r.getValue() == "1") { 
    var row = r.getRow(); 
    var numColumns = s.getLastColumn(); 
    var targetSheet = ss.getSheetByName("sheet2"); 
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
    s.getRange(row, 1, 1, numColumns).copyTo(target); 
    } 

我希望有一個公正的一個簡單的替代CopyTo從我這裏插上,但任何想法表示讚賞。

+1

您是否希望Sheet2中的單元格具有類似'= Sheet1!B3'的內容?如果是這樣,使用setFormula來做到這一點。 – 2016-07-14 17:48:50

+0

謝謝,@bookend - 幫助我到達那裏。 (s.getName()==「sheet1」&& r.getColumn()== 4 && r.getValue()==「1」){ var row = r.getRow(); var numColumns = s.getLastColumn(); var targetSheet = ss.getSheetByName(「Hot List」); var lastRow = targetSheet.getLastRow(); lastRow = lastRow + 1;對於(i = 0; i <= numColumns; i ++){ var cellCol = String.fromCharCode(97 + i); var formula =「= sheet1!」+ cellCol + row; var target = targetSheet.getRange(lastRow,1 + i); target.setFormula(formula); target.setFormula(formula); } } – jezra

+0

如果您已經找到了解決方案,請將其作爲答案發布。 –

回答

0

謝謝,@bookend - 幫助我到那裏。

if (s.getName() == "sheet1" && r.getColumn() == 4 && r.getValue() == "1") { 
    var row = r.getRow(); 
    var numColumns = s.getLastColumn(); 
    var targetSheet = ss.getSheetByName("Hot List"); 
    var lastRow = targetSheet.getLastRow(); 
    lastRow = lastRow + 1; 
    for (i = 0; i <= numColumns; i++) { 
     var cellCol = String.fromCharCode(97 + i); 
     var formula = "=sheet1!" + cellCol + row; 
     var target = targetSheet.getRange(lastRow, 1 + i); 
     target.setFormula(formula); 
    } 
}