2016-07-14 85 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); 
    } 
}