引用ListObjects和ListColumns时Excel停止工作

时间:2019-04-05 09:24:36

标签: excel vba

我创建了一个表,并将名称设置为“ Table1”,如下所示:

ID ----------------------名称

1 -------------------彼得·帕克

2 -------------------神奇女侠

3 ------------------- Thanos

我试图通过两种方式引用ListObjects对象:

方法1:

MsgBox Range("Table1").ListObject.Name

方法2:

MsgBox ActiveSheet.ListObjects(1).Name

两种方式都得到相同的结果:“表1”

但是当我关闭excel应用程序时,方法2导致excel停止工作。

而且当我使用方式1但要引用ListColumns

MsgBox Range("Table1").ListObject.ListColumns("Name").Range(2)

在关闭excel时,我遇到了类似的崩溃“ Excel停止工作” ,尽管结果仍然正确:“ Peter Parker”

为什么会出现该错误以及如何引用ListColumns? 非常感谢!

Error Result1

ResultListColumn

1 个答案:

答案 0 :(得分:0)

引用ListObject的最佳方法是通过变量。

Dim tbl as ListObject 
Set tbl = Sheets("Your Sheet Name").ListObjects("Your Table Name")

因此,现在您可以通过变量轻松地引用表(和ListColumns

tbl.ListColumns(2).DataBodyRange ' returns DataBodyRange of the 2nd column