【问题标题】:Running Macro on Multiple Google Sheets Workbooks在多个 Google 表格工作簿上运行宏
【发布时间】:2022-11-09 06:00:37
【问题描述】:

我有一个很大的工作簿目录,我需要更改命名范围的参数。我已经录制了一个可以做到这一点的宏,我确定有一个快速的应用方法吗?

我在一个名为“Planner Fixes”的目录工作簿中有一个选项卡,我也有一个工作表 ID 列表来发送修改。

宏如下:

function ElementsEdit() {
 var spreadsheet = SpreadsheetApp.getActive();
 spreadsheet.getRange('A1').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('API BootstrapStatic'), true);
 spreadsheet.getRange('A2:BK514').activate();
 spreadsheet.setNamedRange('Elements', spreadsheet.getRange('A2:BK1000'));
 spreadsheet.getActiveSheet().hideSheet();

};

我知道var spreadsheet = SpreadsheetApp.getActive(); 行需要更改以查找电子表格 ID 并“打开”它?

我对脚本很陌生,通常只使用我在网上找到的脚本,但我似乎根本找不到任何东西可以做到这一点。

【问题讨论】:

    标签: javascript google-apps-script google-sheets macro-recorder


    【解决方案1】:

    如果您有多个工作簿,并且您知道每个工作簿的 ID,请尝试

    var spreadsheet = SpreadsheetApp.openById(YOUR_SPREADSHEET_ID);
    

    对于每个

    您可以遍历 id 列表

    const ids = [
      '1T7ixa-JGLgh8oxxxxxxxxxo4UzbivflUlwL9zLGVkgg',
      '16uEeVNEBzBbGVTgKa98yyyyyyyyyyyy6mU-yKIZ0fKM',
      '1d3ZHizzzzzzzzzzzzzzzzzzzLkmM4bFHyDn8RFtAlkk'
    ]
    function myFunction() {
      ids.forEach((id, i) => {
        var spreadsheet = SpreadsheetApp.openById(id)
        // your script here
      })
    }
    

    【讨论】:

    • 惊人!刚刚测试了一对,效果很好!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多