Google Apps Script复制工作表报错:duplicateActiveSheet不是函数
解决Google Apps Script复制并重命名工作表的问题
错误原因分析
你遇到的TypeError是因为代码里的SpreadsheetApp.getActiveSpreadsheet.duplicateActiveSheet()少了括号——getActiveSpreadsheet是方法,必须加()才能获取到Spreadsheet对象,之后才能调用duplicateActiveSheet()。
另外原代码还有两处可优化的点:
- 无需先激活原工作表再复制,直接操作指定工作表更高效
renameActiveSheet()属于旧版方法,推荐用Sheet.setName()直接给副本命名,逻辑更清晰
修正后的代码
function CreateNewPulseSheet() { // 获取当前表格对象 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取原工作表"ORIGINAL" const originalSheet = ss.getSheetByName("ORIGINAL"); // 获取原工作表G1单元格的显示值作为新表名称 const newSheetName = originalSheet.getRange("G1").getDisplayValue(); // 复制原工作表,并设置新名称 originalSheet.copyTo(ss).setName(newSheetName); }
代码说明
originalSheet.copyTo(ss):直接复制指定的原工作表到当前表格,返回的就是副本工作表对象,无需激活操作.setName(newSheetName):直接给副本设置名称,一步完成,避免依赖激活状态的不确定性
内容的提问来源于stack exchange,提问作者Dilshan
相关产品推荐
相关产品推荐

