【问题标题】:Copy and Paste values (as Text) every hour from a Static Table每小时从静态表中复制和粘贴值(作为文本)
【发布时间】:2015-04-27 03:41:01
【问题描述】:

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

希望能找到答案。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    惊讶于互联网没有抛出任何东西来学习如何编写脚本,但会与你分享我采取的路线。

    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);
    
    
    
    }
    

    要让它作为计时器工作,您必须在函数中添加一个时间驱动的触发器。在您需要的时候触发它。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多