首页 > 解决方案 > 在 Excel 中创建目录的论坛

问题描述

我正在寻找一个可以直接在单元格中使用的公式来读取所有活动选项卡的名称。请参阅相同的屏幕截图在此处输入图像描述

还有一个=MID(CELL("filename"),FIND("]",CELL("filename"))+1,255)公式,但它只给出当前选项卡名称。虽然这很容易使用宏来实现,但如果能得到公式那就太好了。

标签: excelexcel-formula

解决方案


我注意到您说的是公式,但您可以使用一个非常简单的用户定义函数(UDF),该函数位于 VBE 的标准模块中(使用Alt+打开F11

Option Explicit
Public Function GetTabName(ByVal tabIndex As Long) As String
    GetTabName = ThisWorkbook.Worksheets(tabIndex).Name
End Function

工作表索引作为参数传递到 UDF,并返回相关的工作表名称。


数据


如果测试可见工作表,您可以使用以下内容,它对未找到工作表有额外的处理:

Option Explicit
Public Function GetTabName(ByVal tabIndex As Long) As String
    Dim ws As Worksheet
    On Error GoTo Errhand
    Set ws = ThisWorkbook.Worksheets(tabIndex)
    If ws.Visible Then
        GetTabName = ThisWorkbook.Worksheets(tabIndex).Name
    Else
        GetTabName = "N/A"
    End If
Errhand:
    If Err.Number <> 0 Then
        Select Case Err.Number
        Case 9
            GetTabName = "Sheet not found"
        End Select
    End If
End Function

UDF 限制



推荐阅读