我有一个 GSheet,我需要一个脚本。
那里有 3 个表(每个表有 3 列):
脚本的目标:每周一次(周日晚上),它应该复制绿色表(没有标题)并附加到紫色表(仅值)。
以下是GSheet链接: https://docs.google.com/spreadsheets/d/1fCPM16quoL21IQRfWE2eL9hlud8Rv21xVHDfiAVNFO4/edit?usp=sharing
这就是我所做的(但由于某种原因不起作用):
function logWeeklyData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Profession_Sheet');
const data = sheet.getRange(3,25,dataSheet.getLastRow()-1, 3).getValues();
sheet.getRange(sheet.getLastRow() + 1, 33, data.length, 3).setValues(data);
}
我发现有两个问题。
首先
dataSheet.getLastRow()-1
应更改为 sheet.getLastRow()-1
。 否则你会得到以下错误:
dataSheet 未定义。
其次,在示例电子表格中,我想您会发现,如果您使用上述更改运行代码,它确实可以正常运行,只是没有达到您预期的结果。
lastRow
适用于工作表,而不适用于相关范围。 因此,绿色表中的数据将从第 65 行开始添加到紫色表中,因为第 64 行是最后一行。
最简单的解决方案是将黄色表格移至其自己的工作表,然后在
filter
公式中引用该工作表以填充绿色表格。 然后继续运行您的代码,您应该会得到您期望的结果。
然后只需设置适当的触发器即可在您希望脚本运行时运行脚本。
希望有帮助!