首页 > 解决方案 > 如何隐藏宏动画谷歌表格

问题描述

大家好,我创建了一个宏来将信息从一个选项卡复制到另一个选项卡,但是当我运行它时,它会在屏幕上显示所有步骤。有没有办法隐藏它们?

这是从宏创建的脚本:

function Step1() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('4:4').activate();
  spreadsheet.getActiveSheet().getFilter().remove();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Working Shift Report'), true);
  spreadsheet.getRange('A3').activate();
  var currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('✔️Overview'), true);
  spreadsheet.getRange('D5').activate();
  spreadsheet.getRange('\'Working Shift Report\'!A3:A1000').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Working Shift Report'), true);
  spreadsheet.getRange('C3').activate();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('✔️Overview'), true);
  spreadsheet.getRange('E5').activate();
  spreadsheet.getRange('\'Working Shift Report\'!C3:C1000').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('D4:J498').activate();
  spreadsheet.getRange('D4:J498').createFilter();
  spreadsheet.getRange('F4').activate();
  spreadsheet.getActiveSheet().getFilter().sort(6, true);
  spreadsheet.getRange('H4').activate();
  var criteria = SpreadsheetApp.newFilterCriteria()
  .setHiddenValues(['Yes'])
  .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(8, criteria);
};'''

标签: google-apps-scriptgoogle-sheetsscriptinghide

解决方案


在您的脚本中,您专门告诉 Google 表格执行所有这些任务。由于您是从宏中记录的,因此习惯上完全按照您的计划执行操作。所有的“activate”和“setActiveSheet”只是其中的例子

如果您希望所有这些都在后台运行,您将需要重写您的代码,以便它不会执行所有选择和突出显示以及不同工作表之间的转换。我可以帮助重写它,但我不知道您的数据结构或您有哪些工作表


推荐阅读