Google Sheets Apps Script如何激活E21值对应工作表并修复getRange报错
报错原因
sheet.getRange("E21").getValue()返回的是字符串格式的工作表名称,不是工作表实例对象,无法直接调用getRange方法,所以触发类型错误。
修复后代码(仅实现激活E21对应工作表的核心需求)
function MyAccount() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Price History"); // 读取E21存储的工作表名字符串 var newSheetName = sheet.getRange("E21").getValue(); // 用名称获取对应的工作表对象 var targetSheet = ss.getSheetByName(newSheetName); // 激活目标工作表 ss.setActiveSheet(targetSheet); }
如需保留原代码中复制E20内容到目标表C1的逻辑,使用下方版本
function MyAccount() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Price History"); var newSheetName = sheet.getRange("E21").getValue(); var targetSheet = ss.getSheetByName(newSheetName); // 执行复制操作 sheet.getRange("E20").copyTo(targetSheet.getRange("C1"), { contentsOnly: true }); // 激活目标工作表 ss.setActiveSheet(targetSheet); }
注意:运行前请确认E21单元格输出的工作表名称和表格内实际存在的工作表名称完全一致,大小写、空格都不能有偏差,否则会出现找不到工作表的报错。
内容的提问来源于stack exchange,提问作者Hearno
相关产品推荐
相关产品推荐

