在Google表格中,当我将给定的a1注释存储到appendRow中时,我希望此附加行中的值显示在另一张表格上,同时保留其最初保存时的网格结构。
因此,从下面的代码中,应将appendedRow(11,5,1,5)中的数据设置为网格I5:J7。
可悲的是,我不熟练使用for
循环和push()
/数组,因此,非常感谢您的支持。
谢谢。
function Test() {
var rs = SpreadsheetApp.getActiveSpreadsheet();
var ss = rs.getSheetByName("Sheet");
var tempArray = [ss.getRange(11,5,1,5)]
var values = tempArray.getValues();
ss.getRange('I5:J7').setValues(values);
}
答案 0 :(得分:0)
Google Apps脚本文档的“参考”部分为您提供了简要说明和不同方法的示例。在
下https://developers.google.com/apps-script/reference/spreadsheet/range#setvaluesvalues
您会看到方法setValues(values)要求起点和终点范围的尺寸要匹配。因此,您不能将1x5范围粘贴到2x3范围中。
您可以做的是循环遍历目标范围的单元格,并为它们顺序分配一个来自原始范围的值-直到所有值都已传递或目标范围已满为止。您可以这样实现:
function Test() {
var rs = SpreadsheetApp.getActiveSpreadsheet();
var ss = rs.getSheetByName("Sheet");
var values = ss.getRange(11,5,1,5).getValues();
var destination=ss.getRange('I5:J7');
var value=0;
for(i=1;i<=3;i++)
{
for(j=1;j<=2;j++)
{
var cell=destination.getCell(i,j);
if(typeof values[0][value] !== "undefined")
{
cell.setValue(values[0][value]);
}
value=value+1;
}
}
}