簡體   English   中英

錄制的宏在多個選項卡或所有選項卡上運行

[英]Recorded Macro To Run On Multiple Tabs or All

我有下面錄制的宏,我想在多個選項卡上運行它,或者如果更容易我想在所有選項卡上運行。

很少有命名的標簽是“Richard”、“Jamie”、“Nibz”。

function Week1DP() { 
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  spreadsheet.getRange('F8:F17').activate();

  spreadsheet.getRange('K14:L15').copyTo(spreadsheet.getActiveRange(), 

  SpreadsheetApp.CopyPasteType.PASTE_DATA_VALIDATION, false);
};

主要思想是您需要使用forEach()循環(或您喜歡的任何循環遍歷所有工作表:


所有工作表的解決方案:

您可以使用getSheets()獲取所有工作表:

function Week1DP() { 
  
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheets = spreadsheet.getSheets(); // get all sheets

  sheets.forEach(sh=>{                 
      sh.getRange('K14:L15').copyTo(sh.getRange('F8:F17'),
      SpreadsheetApp.CopyPasteType.PASTE_DATA_VALIDATION, false);            
});
};

根據名稱選擇工作表的解決方案:

要按名稱獲取工作表,您需要使用getSheetByName()

function Week1DP() { 
  
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ["Richard","Jamie","Nibz"].map(sn=>spreadsheet.getSheetByName(sn));

  sheets.forEach(sh=>{                 
      sh.getRange('K14:L15').copyTo(sh.getRange('F8:F17'),
      SpreadsheetApp.CopyPasteType.PASTE_DATA_VALIDATION, false);            
});
};

添加或刪除此數組中的名稱以包含或排除工作表: ["Richard","Jamie","Nibz"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM