任何人都可以提供有关如何在其他电子表格中更新或设置值的建议。我知道importRange函数会将值带到活动工作表中,但是我想将活动工作表中的单行数据“推”到位于不同电子表格中名为FinalData的工作表底部的一行。>
我要“推送”的数据由其他代码填充,从而在名为TempData的工作表中产生一行数据。该数据存在于TempData!A2:U2范围内。
我的目标是将TempData!A2:U2中的数据追加到表“ DataFinal”底部的新行中,该表位于完全独立的google电子表格中(但在同一“ google驱动器”上。)< / p>
这是我到目前为止尝试过的:
// Row to FinalData
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var startSheet = ss.getSheetByName("TempData");
var sourceRange = ss.getRange ("TempData!A2:U");
var target = SpreadsheetApp.openById("1bWKS_Z1JwLSCO5WSq1iNP1LLQpVXnspA4WkzdyxYDNY");
var targetSheet = target.getSheetByName("DataFinal");
var lastRow = targetSheet.getLastRow();
targetSheet.insertRowAfter(lastRow);
sourceRange.copyTo(targetSheet.getRange(lastRow + 1,1), {contentsOnly: true});
运行该程序时,出现错误消息“目标范围和源范围必须在同一电子表格上”。必须有一种方法可以做到-任何建议都将受到欢迎。
答案 0 :(得分:0)
copyTo()
可以用于同一电子表格。
从您的脚本来看,我认为您可以使用getValues()
和setValues()
来实现它,因为您使用了contentsOnly: true
。那修改呢?
sourceRange.copyTo(targetSheet.getRange(lastRow + 1,1), {contentsOnly: true})
var sourceValues = sourceRange.getValues();
targetSheet.getRange(lastRow + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);
copyTo()
,this thread可能对您的情况有用。如果这不是您想要的,请告诉我。我想修改它。