项目场景
简述:有一个几百个sheet的Excel文件,我需要得到全部的名称以便核对。转换一下就是新建一个.xlsm,得到另一个.xlsx的全部sheet名称。
代码描述
- 打开Excel,新建一个工作簿并保存为
.xlsm格式。 - 按下
Alt + F11打开VBA编辑器。 - 在“项目 - VBAProject”窗格中,右键点击你的工作簿名称,选择“插入” -> “模块”,这样就会创建一个新的模块。
- 在新模块的代码窗口中,复制并粘贴以下代码:
Sub ListSheetNamesFromWorkbook()
Dim wb As Workbook
Dim ws As Worksheet
Dim targetWorkbookPath As String
Dim i As Integer
' 设置目标工作簿路径
targetWorkbookPath = "C:\path\to\your\file.xlsx" ' 更改为目标文件的完整路径
' 尝试打开目标工作簿
Set wb = Workbooks.Open(targetWorkbookPath)
' 初始化变量
i = 1
' 遍历目标工作簿的所有工作表
For Each ws In wb.Worksheets
' 将工作表名称写入当前工作簿的Sheet1中
ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value = ws.Name
' 累加器,移动到下一个单元格
i = i + 1
Next ws
' 关闭目标工作簿,不保存更改
wb.Close SaveChanges:=False
End Sub
- 修改
targetWorkbookPath变量的值,使其指向你想要提取sheet名称的.xlsx文件路径。 - 按下
F5或点击运行按钮来运行这个宏。
总结
简化复制粘贴操作。
本文介绍了一种方法,通过编写VBA代码,自动化地从一个包含多个工作表的Excel(.xlsm)文件中提取所有sheet的名称,并将其写入新的.xlsx文件的Sheet1。只需修改代码中的工作簿路径,即可应用于其他文件。
2649

被折叠的 条评论
为什么被折叠?



