任何人都可以帮我写一个函数,它会在工作表中找到一个表,而不给出表名吗?
输入:工作表或工作表名称
输出:表格或表格名称
假设:工作表只有一个表
这些方面的东西:
Function GetTableName(shtName As String) As Boolean
'Do stuff that returns the table name
End Function
答案 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
所有三种方法的结果: