项目场景
简述:
有一个几百个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
或点击运行按钮来运行这个宏。
总结
简化复制粘贴操作。