一、使用公式获取当前工作表名称
RIGHT函数法 在任意单元格输入以下公式:
```excel
=RIGHT(CELL("filename"), LEN(CELL("filename")) - FIND("]", CELL("filename"))))
```
按回车后,单元格将显示当前工作表的名称(位于文件名末尾)。 *注意:需先保存文件,否则公式可能失效。*
MID函数法
输入公式:
```excel
=MID(CELL("filename", $A$1), FIND("]", CELL("filename", $A$1)) + 1, LEN(CELL("filename", $A$1)) - FIND("]", CELL("filename", $A$1)))
```
或者:
```excel
=MID(CELL("filename", $A$1), FIND(" [", CELL("filename", $A$1)) + 1, FIND(" ]", CELL("filename", $A$1)) - FIND(" [", CELL("filename", $A$1)) + 1)
```
这两个公式均返回当前工作表名称及完整路径,路径以"工作簿名[工作表名]"格式显示。
二、使用VBA宏批量获取所有工作表名称
简单输出到单元格
打开VBA编辑器(`Alt + F11`),插入新模块并输入:
```vba
Sub ListSheetNames()
Dim sht As Worksheet
Dim i As Integer
i = 1
For Each sht In ThisWorkbook.Sheets
Cells(i, 1).Value = sht.Name
i = i + 1
Next sht
End Sub
```
运行后,A列将显示所有工作表名称。
格式化输出
修改上述代码,在赋值后添加格式化操作:
```vba
Sub ListSheetNamesFormatted()
Dim sht As Worksheet
Dim i As Integer
i = 1
For Each sht In ThisWorkbook.Sheets
Cells(i, 1).Value = sht.Name
Cells(i, 1).Font.Bold = True
Cells(i, 1).HorizontalAlignment = xlCenter
Cells(i, 1).Font.Size = 14
i = i + 1
Next sht
End Sub
```
运行后,A列名称将加粗、居中显示。
三、其他实用方法
查找特定内容的工作表:
使用`VLOOKUP`或`INDEX`结合`MATCH`函数,例如:
```excel
=INDEX(Worksheets, MATCH("特定名称", Worksheets.Name, 0))
```
但此方法需知道目标名称在哪个工作表中。
以上方法可根据场景灵活选择:公式适合快速获取单个名称,VBA适合批量处理或自动化需求。