我有一些简单的代码,可以从不同的工作表获取数据并设置数据。
问题是,我想保留以前运行的数据,但是当然,每次我运行脚本时,它都会覆盖先前的数据。
任何IF语句只需将相同的值发布两次。我该怎么办?
非常感谢。
button.container.innerText=233
答案 0 :(得分:0)
如果我理解正确,您希望将一列数据从一张纸写到另一张纸,而不要覆盖您在先前运行中写的列,而是想将数据写在下一空白列。
您可以在要写入的行范围内逐列进行迭代(直到256,这是工作表的最大列数),在这种情况下,从第5行开始第4行,第1行从第一行开始在if语句中使用isBlank函数[1]进行迭代,您可以检查范围是否为空并在其上写。
我测试了以下代码并按需工作:
function test3() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('Sheet1');
var gcls = s.getRange(6, 10, 4).getValues();
//write values in tab 2
var gSheet = ss.getSheetByName('Tracking');
//Loop until finds empty range
for(i=1; i<=256; i++) {
// Warning: Be aware that getRange retrieves a Range type, not a cell. For more info check [2]
var gcells = gSheet.getRange(5, i, 4);
if (gcells.isBlank()) {
gcells.setValues(gcls);
break;
}
}
}
[1] https://developers.google.com/apps-script/reference/spreadsheet/range#isblank
[2] https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows