Google apps script 单元格为空时粘贴为值(谷歌应用程序脚本)

Google apps script 单元格为空时粘贴为值(谷歌应用程序脚本),google-apps-script,Google Apps Script,目前我正在使用以下脚本: function moveValuesOnly() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var source = ss.getRange('Sheet1!C16:C16'); source.copyTo(ss.getRange('Sheet2!A1'), {contentsOnly: true}); source.clear(); } 但是,我想用每周生成的新数据附加sheet2中粘贴的数

目前我正在使用以下脚本:

function moveValuesOnly() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange('Sheet1!C16:C16');
  source.copyTo(ss.getRange('Sheet2!A1'), {contentsOnly: true});
  source.clear();
}
但是,我想用每周生成的新数据附加sheet2中粘贴的数据

因此,每周更新一次sheet1,并在“sheet1!C16'将发生变化。我想把这个附加在'Sheet2'中!A2'。等等

那么,如何编辑此脚本以确保新值复制到下一个空单元格中(因此,当“Sheet2!A1”有值时,从“Sheet1!C16”获取新值并将其复制到“Sheet2!A2”。当“Sheet2!A1”有值时,将新值从“Sheet1!C16”复制到“Sheet2!A3”中

我需要在一年中的所有几周内都保持这种状态(为了安全起见,我需要在53周内保持这种状态)


提前一点!

这要看情况而定,你可以做几件事

第一个是最简单的,但是有一个条件。如果你每周都复制到单元格
A1
→ <代码>A2→
A3
然后继续向下,那么每周,你复制的数据总是最低的。因此,例如,如果你想将数据复制到单元格
A3
,这意味着在任何列中最后一行有任何数据是row
2
。这样,你所需要做的就是得到如下范围:
ss.getRange(ss.getLastRow()+1,1)

另一种方法是使用
PropertiesService
存储最后使用的行

var nextRow = PropertiesService.getScriptProperties().getProperty('property we added before')
然后当你得到你使用的目标范围

ss.getRange(nextRow, 1)
PropertiesService.getScriptProperties().setProperty('property we added before', nextRow + 1)
这样,您每次都会获得下一行,并在下次希望运行时更新属性。这样,您还需要记住,您可能希望在一年后重置计数器