制作每周文案脚本

问题描述 投票:0回答:1

我有一个 GSheet,我需要一个脚本。

那里有 3 个表(每个表有 3 列):

  • 黄表(AC-AE列)每天自动更新;与此无关。
  • 绿色表自动从黄色表获取数据(在单元格 Y3 中使用 FILTER 功能)。 因此,绿色表中的行数可能不同且不可预测。

脚本的目标:每周一次(周日晚上),它应该复制绿色表(没有标题)并附加到紫色表(仅值)。

以下是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);
}
google-sheets
1个回答
0
投票

我发现有两个问题。

首先

dataSheet.getLastRow()-1
应更改为
sheet.getLastRow()-1
。 否则你会得到以下错误:

dataSheet 未定义。

其次,在示例电子表格中,我想您会发现,如果您使用上述更改运行代码,它确实可以正常运行,只是没有达到您预期的结果。

lastRow
适用于工作表,而不适用于相关范围。 因此,绿色表中的数据将从第 65 行开始添加到紫色表中,因为第 64 行是最后一行。

最简单的解决方案是将黄色表格移至其自己的工作表,然后在

filter
公式中引用该工作表以填充绿色表格。 然后继续运行您的代码,您应该会得到您期望的结果。

然后只需设置适当的触发器即可在您希望脚本运行时运行脚本。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.