我有几个"幻像"我在UserForm中设置的对象,我在VBA(用于Excel)中设计。它们在表单的界面构建器部分中被删除,并且在实际模块中没有对它们的剩余引用(至少在IDE将向我显示的模块部分中)。但是,这些对象仍然存在。我无法重复使用他们的名称,并且他们在对象浏览器中作为表单的成员可见(请参阅EmployeeFormatFrame
和Label1
):
无法重复使用名称:
我真的可以用一些帮助搞清楚这一点。在研究这个问题时我唯一能找到的是this,但它指的是Access数据库,因此没有多大帮助。这是我在Borland的C ++ Builder中经常遇到的一个非常类似的问题,它始终通过删除代码中对象的剩余引用来解决。但是,我在这里找不到任何东西(或者IDE不会向我展示)。
答案 0 :(得分:1)
VBA是一种解释性语言。在VBE中,当您按下输入代码语句时,将在P代码中转换并保存在应用程序中(例如Excel)。
因此,如果您遇到幻像对象,最好也是最有效的方法是创建一个新的工作簿并将所有代码和对象传输给它。完全是barrowc
在上面评论中建议的内容。
不要浪费时间寻找解决方案来修复现有工作簿。除非您可以编写P代码清理程序,否则创建新工作簿是最快的修复方法。