查找没有名字的表?

时间:2014-11-19 02:38:05

标签: excel-vba vba excel

任何人都可以帮我写一个函数,它会在工作表中找到一个表,而不给出表名吗?

输入:工作表或工作表名称

输出:表格或表格名称

假设:工作表只有一个表

这些方面的东西:

Function GetTableName(shtName As String) As Boolean

    'Do stuff that returns the table name   

End Function

1 个答案:

答案 0 :(得分:3)

如果总有一个表,请执行以下操作:

Sub findFirstTable()
    MsgBox "Table """ & Worksheets("shtName").ListObjects(1).Name & """ Found"
End Sub

如果有多个表,请尝试循环工作表中的所有“ListObjects”,然后返回如下名称:

Sub FindAllTablesOnSheet()
    Dim wks As Worksheet
    Dim tbl As ListObject

    Set wks = Worksheets("shtName")

    For Each tbl In wks.ListObjects
        Application.Goto tbl.Range
        MsgBox "Table """ & tbl.Name & """ Found"
    Next
End Sub

为了让你的功能正常工作,我改变了一些东西并让它返回一个字符串,因为它听起来像是在寻找名字,而不是试图找出它是否存在。如果您的工作表上没有表格,您应该添加一些错误处理。

Sub main()
    MsgBox "Table name: " & GetTableName("shtName")
End Sub

Function GetTableName(shtName As String) As String
    GetTableName = Worksheets(shtName).ListObjects(1).Name
End Function

所有三种方法的结果:

enter image description here