用户窗体对象即使在删除后仍然存在
UserForm object persists even after deletion
我在 VBA(针对 Excel)中设计的用户窗体中有几个 "phantom" 对象。它们在表单的界面构建器部分被删除,并且在实际模块中没有对它们的剩余引用(至少,在 IDE 将向我显示的模块部分)。但是,这些对象仍然存在。我不能 re-use 他们的名字,他们在对象浏览器中作为表单的成员可见(参见 EmployeeFormatFrame
和 Label1
):
不能re-use 姓名:
我真的需要一些帮助来解决这个问题。在研究这个问题时,我唯一能找到的是 this,但它指的是 Access 数据库,因此没有太大帮助。这是一个与我在 Borland 的 C++ Builder 中经常遇到的问题非常相似的问题,该问题总是通过删除代码中对象的剩余引用来解决。但是,我在这里找不到(或者 IDE 不会向我显示它们)。
VBA 是一种解释型语言。在 VBE 中,当您按下回车键时,您的代码语句将转换为 P-Code 并保存在应用程序中(例如 Excel)。
因此,如果您被幻影对象所困扰,最好和最有效的方法是创建一个新工作簿并将所有代码和对象转移到其中。正是 barrowc
在上面的评论中建议的。
不要浪费时间寻找修复现有工作簿的解决方案。除非您可以编写 P 代码清理器,否则创建新工作簿是最快的解决方法。
我在 VBA(针对 Excel)中设计的用户窗体中有几个 "phantom" 对象。它们在表单的界面构建器部分被删除,并且在实际模块中没有对它们的剩余引用(至少,在 IDE 将向我显示的模块部分)。但是,这些对象仍然存在。我不能 re-use 他们的名字,他们在对象浏览器中作为表单的成员可见(参见 EmployeeFormatFrame
和 Label1
):
不能re-use 姓名:
我真的需要一些帮助来解决这个问题。在研究这个问题时,我唯一能找到的是 this,但它指的是 Access 数据库,因此没有太大帮助。这是一个与我在 Borland 的 C++ Builder 中经常遇到的问题非常相似的问题,该问题总是通过删除代码中对象的剩余引用来解决。但是,我在这里找不到(或者 IDE 不会向我显示它们)。
VBA 是一种解释型语言。在 VBE 中,当您按下回车键时,您的代码语句将转换为 P-Code 并保存在应用程序中(例如 Excel)。
因此,如果您被幻影对象所困扰,最好和最有效的方法是创建一个新工作簿并将所有代码和对象转移到其中。正是 barrowc
在上面的评论中建议的。
不要浪费时间寻找修复现有工作簿的解决方案。除非您可以编写 P 代码清理器,否则创建新工作簿是最快的解决方法。