如何隐藏宏动画谷歌表格

问题描述

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

这是从宏创建的脚本:

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(),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 表格执行所有这些任务。由于您是从宏录制的,因此习惯上完全按照您的计划执行操作。所有的“activate”和“setActiveSheet”都只是例子

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