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
,这意味着在任何列中最后一行有任何数据是row2
。这样,你所需要做的就是得到如下范围: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)
这样,您每次都会获得下一行,并在下次希望运行时更新属性。这样,您还需要记住,您可能希望在一年后重置计数器