0

我在我的电子表格中的一张表中的谷歌表中有一个录制的宏。我想编辑脚本,使其适用于电子表格中的所有工作表(这样我就不必分别在每个工作表中运行记录的宏)。我已经看过有关如何在 Excel 中执行此操作的文章,但在 Google 表格中是否可行?

4

2 回答 2

0

你确定它在其他工作表上不起作用吗?录制的宏通常使用活动工作表而不是命名工作表。

于 2019-03-18T23:16:16.963 回答
0

虽然我迟到了 9 个月才回答这个问题,但这里有一个对您的问题的有效答案,其中有一个示例,使用另一个名为 ClearActiveSheet 的函数清除所有可见工作表。如果有人仍在寻找如何做到这一点,这应该给出一个想法。

function ClearActiveSheet() {

  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();

  sheet.getRange('A1').activate();  
  sheet.clear();  
};

function ClearAllVisibleSheets() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  sheets.forEach(function(sheet) {    
    //You would need to make this the current active sheet, so that you can call the ClearActiveSheet function that works on active sheet
    sheet.activate()

    // Now since you have this sheet activated, you can call the function to clear the active sheet
    ClearActiveSheet();   
  });
};

从 Tools-> ScriptsEditor -> SelectFunction (ClearAllVisibleSheets) 中选择 GoogleSpredsheets 中的 ClearAllVisibleSheets 函数并运行/或调试,您将看到它完成了这项工作。

PS:如果这满足您的需求,请记住投票并接受此作为答案:)。

于 2020-01-08T16:31:57.443 回答