目前我正在使用以下脚本:
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周)
Thnx提前!
答案 0 :(得分:0)
这取决于你可以做一些事情。
第一个是最简单的,但有一个条件。如果您每周复制到单元格A1
→A2
→A3
并继续按下,那么每周,您复制的数据始终最低。因此,例如,如果您希望将数据复制到单元格A3
,这意味着任何列中包含任何数据的最后一行是行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)
这样每次都可以获得下一行,并在下次运行时更新属性。有了这个,您还需要记住,您可能希望在年后重置计数器。