首页 > 解决方案 > 如何从 VBA 项目到对象的完全限定名称?

问题描述

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

一些名称如UserForm,Module等重叠。如何从 VBA 项目中获得完全限定的名称?

例如:

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

当用户重命名工作簿时,项目名称保持不变......理想情况下完全避免工作簿名称,如果可能的话?

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

标签: excelvbaqualified-name

解决方案


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

从:

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

至:

UserForm1.CommandButton1.Caption

但是,要从另一个工作簿引用用户表单,请避免这样做......


推荐阅读