求可将已有工作表重命名为电子表格名称的脚本
将工作表重命名为电子表格名称的脚本方案
谷歌表格(Google Sheets)脚本
如果你用的是谷歌表格,可以用以下Google Apps Script实现需求:
方案1:重命名指定工作表
比如要把名为Sheet1的工作表改成当前电子表格的名称:
function renameSheetToSpreadsheetName() { // 获取当前电子表格 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取电子表格名称 const ssName = ss.getName(); // 替换掉工作表名称不允许的特殊字符(/ \ ? * [ ]) const validSheetName = ssName.replace(/[\/\\\?\*\[\]]/g, ""); // 指定要重命名的工作表,也可以用索引ss.getSheets()[0]取第一个工作表 const targetSheet = ss.getSheetByName("Sheet1"); if (targetSheet) { targetSheet.setName(validSheetName); SpreadsheetApp.getUi().alert("工作表重命名完成!"); } else { SpreadsheetApp.getUi().alert("未找到指定的工作表!"); } }
方案2:重命名所有工作表
如果要把当前电子表格里的所有工作表都改成电子表格名称(自动加序号避免重名):
function renameAllSheetsToSpreadsheetName() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const ssName = ss.getName(); const validSheetName = ssName.replace(/[\/\\\?\*\[\]]/g, ""); const sheets = ss.getSheets(); sheets.forEach((sheet, index) => { const newName = sheets.length > 1 ? `${validSheetName}_${index + 1}` : validSheetName; sheet.setName(newName); }); SpreadsheetApp.getUi().alert("所有工作表重命名完成!"); }
使用方法:打开谷歌表格,点击顶部菜单栏「工具」→「脚本编辑器」,粘贴对应代码,点击运行按钮,首次运行需要授权权限,按照提示操作即可。
Excel(VBA)脚本
如果是Excel,用VBA脚本实现:
方案1:重命名指定工作表
把Sheet1改成当前工作簿的名称:
Sub RenameSheetToWorkbookName() Dim wb As Workbook Dim targetSheet As Worksheet Dim wbName As String Set wb = ThisWorkbook wbName = wb.Name ' 去掉文件扩展名(.xlsx/.xls等) wbName = Left(wbName, InStrRev(wbName, ".") - 1) On Error Resume Next Set targetSheet = wb.Worksheets("Sheet1") On Error GoTo 0 If Not targetSheet Is Nothing Then ' 替换Excel工作表名称不允许的特殊字符(/ \ ? * : [ ]) wbName = Replace(Replace(Replace(Replace(Replace(Replace(wbName, "/", ""), "\", ""), "?", ""), "*", ""), ":", ""), "[", ""), "]", "") targetSheet.Name = wbName MsgBox "工作表重命名完成!" Else MsgBox "未找到指定的工作表!" End If End Sub
方案2:重命名所有工作表
Sub RenameAllSheetsToWorkbookName() Dim wb As Workbook Dim ws As Worksheet Dim wbName As String Dim i As Integer Set wb = ThisWorkbook wbName = wb.Name wbName = Left(wbName, InStrRev(wbName, ".") - 1) wbName = Replace(Replace(Replace(Replace(Replace(Replace(wbName, "/", ""), "\", ""), "?", ""), "*", ""), ":", ""), "[", ""), "]", "") i = 1 For Each ws In wb.Worksheets If wb.Worksheets.Count > 1 Then ws.Name = wbName & "_" & i Else ws.Name = wbName End If i = i + 1 Next ws MsgBox "所有工作表重命名完成!" End Sub
使用方法:打开Excel,按Alt + F11打开VBA编辑器,右键点击当前工作簿→「插入」→「模块」,粘贴代码,回到Excel界面,按Alt + F8选择对应宏运行即可。
注意事项:
- 电子表格/工作簿名称里的特殊字符必须替换,因为工作表名称有格式限制
- 多工作表重命名时必须加序号,避免名称重复导致报错
- 谷歌脚本首次运行需要授权,确认权限请求后即可正常使用
内容的提问来源于stack exchange,提问作者Kangi
相关产品推荐
相关产品推荐

