如何从 VBA 项目到对象的完全限定名称?

问题描述

如果我同时打开多个宏工作簿...

某些名称UserFormModule 等重叠。 如何从 VBA 项目中获得完全限定的名称

例如:

VBAProject(ThisWorkbook.Name).UserForm1.CommandButton1.Caption
MyNameOfProject(ThisWorkbook.Name).UserForm1.CommandButton1.Caption

用户重命名工作簿时,项目名称保持不变... 如果可能,最好完全避免使用工作簿名称

例如,在一个工作簿中,有一个模块具有我想从另一个工作簿中使用的功能。总的来说,我希望事情得到控制。尽可能完全合格。

解决方法

当您在同一作品中提及 userform 时,您可以使用:

来自:

MyNameOfProject(ThisWorkbook.Name).UserForm1.CommandButton1.Caption

致:

UserForm1.CommandButton1.Caption

但是,如果要从其他工作簿中引用用户表单,请避免这样做...