2016-07-06 79 views
0

对于Excel中的给定ActiveCell,如何激活VBA中的表名工具设计选项卡时,VBA如何返回显示在属性分组中的表名称。因此,例如在即时窗口:使用VBA返回与给定的ActiveCell选择对应的表名称

?ActiveSheet.ListObjects(2) 

Table3600 

,但如果我选择一个单元格(可能在表内),我似乎无法找到一个属性,要么返回选定单元格的包含表的名称。我试图存储返回值或声明当前单元格不在表格中。

TIA(这似乎是很基本的但我无处)

+0

我不知道你想要什么:返回表的名字,返回单元格的值或找出单元格是否在表中。你能发展吗? –

+0

感谢您的关注Remi,我正在尝试做的是从透视表“双击”创建堆栈表,并将它们集成到一个表中,通过标识表身份我可以删除其表的状态,然后集成它在不断增长的上表堆栈 – StumpedObject

回答

3

这些返回选定单元格的表的名称。如果没有表,则会引发运行时错误。

Selection.ListObject.Name 
Selection.ListObject.DisplayName 

可以使用避免错误:

If Not Selection.ListObject Is Nothing Then 
    MsgBox Selection.ListObject.Name 
End If 

?ActiveSheet.ListObjects(2)会给第二个表的名称在一张纸上,如果没有第二个表引发错误。

+0

感谢Darren你的方法运行良好,我对Excel中的列表对象相当陌生,但不在Access中,所以我经常对它的使用感到有点惊讶。我在即时窗口(.Name和.DisplayName)都尝试过,他们都工作。此外,我也很感谢你解释ActiveSheet.ListObjects(2)的索引函数模式,并且已经在我的一个表栈中尝试了1,2和3:这是非常强大的,因为它不依赖于活动单元格的特定坐标,再次感谢您。 – StumpedObject

相关问题