一、使用公式获取单个工作表名称
基本公式法 结合`CELL`、`MID`和`FIND`函数提取路径中的工作表名称:
```excel
=MID(CELL("filename", A1), FIND("]", CELL("filename", A1)) + 1, LEN(CELL("filename", A1)))
```
该公式通过定位路径中最后一个右括号后的位置,截取后续字符作为工作表名称。
简化公式法
使用`RIGHT`函数直接提取名称部分:
```excel
=RIGHT(CELL("filename", A1), LEN(CELL("filename", A1)) - FIND("]", CELL("filename", A1)))
```
适用于路径格式规范的情况。
二、批量获取所有工作表名称
SHEETSNAME函数
适用于快速提取当前工作簿所有名称:
```excel
=SHEETSNAME()
```
可指定输出方向(0横向/1纵向)和是否包含当前工作表。
动态数组公式(适用于Excel 365/2019)
使用`TEXTJOIN`和`INDIRECT`函数:
```excel
=TEXTJOIN(", ", TRUE, INDIRECT("Sheet" & ROW(1:100)))
```
适用于需要生成名称列表供其他操作(如超链接)的场景。
三、使用VBA自动化提取
基础代码
通过VBA宏批量获取名称并输出到指定区域:
```vba
Sub ListSheetNames()
Dim ws As Worksheet
Dim name As String
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
name = ws.Name
Cells(i + 1, 1).Value = name
i = i + 1
Next ws
End Sub
```
运行后,工作表名称将出现在A列。
添加超链接(进阶)
可在获取名称的同时插入超链接:
```vba
Sub ListSheetNamesWithLinks()
Dim ws As Worksheet
Dim name As String
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
name = ws.Name
Cells(i + 1, 1).Value = name
Cells(i + 1, 2).Hyperlink = ThisWorkbook.Sheets(name).Name
i = i + 1
Next ws
End Sub
```
适用于需要快速跳转的工作表管理场景。
四、注意事项
文件格式限制: 部分方法(如通过`GET.WORKBOOK`)仅适用于`.xlsm`宏表文件。 性能优化
以上方法可根据具体需求选择使用,公式适合快速查看,VBA和Power Query适合批量处理和自动化任务。