Nei*_*l P 6 excel vba excel-vba
执行以下行时,将引发1004运行时错误(应用程序定义或对象定义错误)
rangeString = ActiveWorkbook.Names.Item("MyTableName").RefersToLocal
Run Code Online (Sandbox Code Playgroud)
我看不出我的代码有什么问题,表名似乎是正确的.这段代码在类模块中,我不是vba专家,所以我不知道是否会引入范围等任何问题.
如果您的对象(MyTableName)是Excel数据表,请使用ListObject使用的Range,例如
Sub test()
Dim L As ListObject
Set L = ActiveSheet.ListObjects("MyTableName")
' at this point you can inspect the properties of L in the debugger
' retrieve the local address of tue underlying range
Debug.Print L.Range.AddressLocal
End Sub
Run Code Online (Sandbox Code Playgroud)
请不要选择此作为答案.这仅适用于增值:)
如果您只有表格的名称并且不确定该表格所在的那张表格,那么您可以试试这个
Sub Sample()
Dim oSh As Worksheet
Dim oLo As ListObject
For Each oSh In ThisWorkbook.Worksheets
For Each oLo In oSh.ListObjects
If oLo.Name = "MyTableName" Then
Debug.Print "=" & oSh.Name & "!" & oLo.Range.Address
Exit For
End If
Next
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
我认为Range Object可以访问任何表格中的任何表格:
Debug.Print "=" & Range("MyTableName").Parent.Name & "!" & Range("MyTableName").Address
Run Code Online (Sandbox Code Playgroud)