从静态表每小时复制和粘贴值(作为文本)

时间:2015-04-27 03:41:01

标签: google-apps-script google-sheets

我是脚本的新手,你可以看到,我需要一个脚本,我可以在桌面上获取数据(Sheet 1!A1:E7 - 每小时更新一次)并复制它(如TEXT)到新表(表2)。我需要Sheet 2生成新的行/列,每小时(24小时),持续7天。我搜索了整个网络以找到这个,但无济于事。

希望找到答案。

1 个答案:

答案 0 :(得分:0)

互联网没有惹恼任何东西学习如何编写脚本,但会分享我带给你的路线。

Codeacademy. Great for learning the basic priciples of Javascript

一旦你完成了,下一站就应该在这里。

This is googles reference site for scripting. But also has a few have a go tutorials that give insight into Google Application scripts and how they work.

这应该为您提供构建自己脚本的良好起点。 我也会保留这个链接,以获得很好的反思,W3Schools

Has javascript references and tutorials

你可以立刻上路,一旦你碰到砖墙,或者代码表现不正常。有很好的旧HERE,StackOverflow可供访问。

我不明白你的问题“生成新列”中的意思 因为如果源表始终是A1:E7,那么表2中不需要额外的列。只导入额外的行作为新数据。

这是您问题的快速解决方案。

function tableCopy() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName("Sheet1");
  var targetSheet = ss.getSheetByName("Sheet2");
  var values = sourceSheet.getRange("A1:E7").getValues();

  var valuesLength = values.length;
  if (!valuesLength) return; 





  var lastRow = targetSheet.getLastRow();
  var requiredRows = lastRow + valuesLength - targetSheet.getMaxRows();
  if (requiredRows > 0) targetSheet.insertRowsAfter(lastRow, requiredRows);
    targetSheet.getRange(lastRow + 1, 1, valuesLength, values[0].length).setValues(values);



}

要使其作为计时器工作,您必须为该功能添加时间驱动的触发器。在你需要的时候触发它。

我希望这会有所帮助