1

情况:

我有一个包含 10 个工作表和 15 个用户登录并修改它的电子表格。我只想从其他电子表格中复制 6 张。

需要的脚本功能:

该脚本应将工作表复制到另一个特定的电子表格。

1) Source = XXXXXX 我只想从 Source 复制 sheet1,2,3,4,5,6,7,8 到 target。目标 = YYYYY

注意:Target 已经有 sheet1,2,3,4,5,6,7,8。我需要更新那个目标电子表格,因为我用它来制作报告。我不能使用该来源,因为这份报告是机密的。

2)脚本需要从目标运行。

问题:

我阅读了很多论坛,但任何人都提供了一个关于“如何将工作表复制到另一个工作表”的通用脚本。所有这些脚本都非常复杂,我是新手。

测试用例:

不适用

我认为是从一个电子表格到另一个电子表格的简单副本,但我需要一次性执行此操作实际上我是手动执行的,但我已发出系统将工作表名称更改为 XXXXX 的副本,但我的报告配置为使用特定的名字,这就是为什么我需要让这成为可能。我认为这个脚本会对很多人有所帮助。

提前致谢。

编辑:2013 年 6 月 14 日

你好,

请你帮我调整这个脚本以更有效地工作。

    function UpdateData() {
     var source = SpreadsheetApp.openById('YYYYYY');
     var sheet8 = source.getSheets()[8];
     var sheet7 = source.getSheets()[7];
     var sheet6 = source.getSheets()[6];
     var sheet5 = source.getSheets()[5];
     var sheet4 = source.getSheets()[4];
     var sheet3 = source.getSheets()[3];
     var sheet2 = source.getSheets()[2];
     var sheet1 = source.getSheets()[1];

     var destination = SpreadsheetApp.openById('ZZZZZZ');

     sheet8.copyTo(destination).setName('Sheet8');
     sheet7.copyTo(destination).setName('Sheet7');
     Utilities.sleep(100);
     sheet6.copyTo(destination).setName('Sheet6');
     sheet5.copyTo(destination).setName('Sheet5');
     Utilities.sleep(100);
     sheet4.copyTo(destination).setName('Shee4');
     sheet3.copyTo(destination).setName('Shee3');
     Utilities.sleep(100);
     sheet2.copyTo(destination).setName('Shee2');
     sheet1.copyTo(destination).setName('Shee1');

      SpreadsheetApp.flush();
    }
4

1 回答 1

9

只需从描述中查看文档:copyTo(spreadsheet)

将工作表复制到另一个电子表格。目标电子表格可以是源。新电子表格的名称为“[原始电子表格名称]的副本”

该方法返回复制的工作表,以便您可以重命名它:

sourceSheet.copyTo(targetSpreadSheet).setName('somename');

我希望,你知道如何在 JS 中编写循环......

于 2013-06-14T17:13:18.467 回答