function clearData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source_sheet = ss.getSheetByName("sheet");
var source_range = source_sheet.getRange("2:21");
var values = source_range.getValues();
var target = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1kNzG4IQrI9TSlGzpIjp_84uWzoraVDSLPyAS-RIJPh4/edit#gid=1047694951");
var target_sheet = target.getSheetByName("Deposits");
var target_range = target_sheet.getRange(2,1,values.length,values[19].length);// use the array size to define the range because the target column A is not necessarily the same size at this time.
target_range.setValues(values);
}
我已经为我的Google工作表创建了此功能,但是它会更新相同的20行。我需要做的是更新行,然后有一个清除函数,清除一个电子表格,然后在前20行下添加另外20行,依此类推,一次有20行的追加行功能。
但是,我尝试的任何代码都无法正常工作。
到目前为止,我附带的代码是
。有人可以帮忙吗?
答案 0 :(得分:2)
您的问题是您的代码总是更新相同的20行。在此行中找到原因:
[...]
<IterationStatus>
<IterationId>ArticleRequest_de17201d-5fcd-4d93-8ecf-1977f60f32fa</IterationId>
<MaxCount>767</MaxCount>
<Count>50</Count>
<RequestedBlockIndex>0</RequestedBlockIndex>
<RequestedBlockSize>50</RequestedBlockSize>
<IterationInfo>F4R returned (50) Articles.</IterationInfo>
</IterationStatus>
[...]
您的目标范围始终从第2行开始,因此它将覆盖第2行及以下的任何内容。相反,您希望将数据复制到“ LastRow”之后的行中(无论可能是什么)。
尝试一下:
target_sheet.getRange(2,1,values.length,values[19].length)
这里有两个变化:
var targetLR = target.getLastRow();
var target_range = target_sheet.getRange(targetLR+1,1,values.length,values[19].length);
返回具有内容的最后一行的位置。
因此,我们只需在此值(“ targetLR + 1”)上添加“ 1”,以在下一行定义target_range的开始。