如何基于Google Sheets当前标签单元格值获取对应工作表实现隐藏操作
代码实现方案
你需要做的调整非常简单,首先明确:Google Apps Script 不存在getSheetByRange方法,你只需要读取当前工作表B4单元格的文本值,替代原代码中写死的固定工作表名称即可,调整后的代码如下:
function hideTargetSheet() { const spreadsheet = SpreadsheetApp.getActive(); // 读取当前工作表B4单元格的文本,trim用于去除首尾意外输入的空格 const targetSheetName = spreadsheet.getActiveSheet().getRange('B4').getDisplayValue().trim(); const targetSheet = spreadsheet.getSheetByName(targetSheetName); // 加一层判断,避免目标工作表不存在时报错 if (targetSheet) { targetSheet.hideSheet(); } }
如果需要实现对应工作表的取消隐藏操作,可以使用下面的代码:
function unhideTargetSheet() { const spreadsheet = SpreadsheetApp.getActive(); const targetSheetName = spreadsheet.getActiveSheet().getRange('B4').getDisplayValue().trim(); const targetSheet = spreadsheet.getSheetByName(targetSheetName); if (targetSheet) { targetSheet.showSheet(); } }
说明
- 原代码里的
activate()相关操作都是录制宏生成的冗余代码,实际运行时不需要激活单元格或者工作表就可以直接执行隐藏操作,已经在优化代码中移除 - 新增的空值判断可以避免B4为空、或者填写的工作表名称不存在时脚本抛出运行错误
getDisplayValue()会读取单元格显示的实际文本,不受单元格格式、公式的影响,匹配准确率更高
内容的提问来源于stack exchange,提问作者Lonestar Dads
相关产品推荐
相关产品推荐

