如何用Google Scripts将工作表内容粘贴到以指定单元格命名的新工作表
Google Apps Script 功能扩展代码
修改后完整代码
function GenerateName() { var ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取源工作表对象 var questionnaireSheet = ss.getSheetByName("Questionnaire"); // 读取C1单元格作为新工作表名称 var newSheetName = questionnaireSheet.getRange("C1").getValue(); // --- 可选:重名校验,避免重复创建报错 --- var allSheetNames = ss.getSheets().map(item => item.getName()); if (allSheetNames.includes(newSheetName)) { SpreadsheetApp.getUi().alert("工作表「" + newSheetName + "」已存在,请修改C1值后重试"); return; } // 插入新工作表,直接获取新工作表实例,自动适配任意新表名 var newSheet = ss.insertSheet(newSheetName); // 复制源表A1:B16区域到新表对应位置 questionnaireSheet.getRange("A1:B16").copyTo(newSheet.getRange("A1:B16")); }
功能说明
- 天然适配任意新工作表名称:直接接收
insertSheet方法返回的新工作表实例,不需要额外根据名称查找匹配,不会因为表名变化出现匹配错误 - 默认完整复制源区域的内容、格式、公式、数据验证规则,如果仅需要复制数值,可以将最后一行复制代码替换为:
questionnaireSheet.getRange("A1:B16").copyTo(newSheet.getRange("A1:B16"), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); - 可选添加的重名校验逻辑可以避免同名工作表导致的运行报错,不需要可以直接删除对应段即可
内容的提问来源于stack exchange,提问作者Hearno
相关产品推荐
相关产品推荐

