UserForm错误:对象'_VBComponent'的方法'属性'失败

Rys*_*zyk 5 excel vba excel-vba userform

我想用VBA编辑我的UserForm对象.

当我使用以下内容时,我收到错误,如帖子标题:

Sub myTest()
    ThisWorkbook.VBProject.VBComponents("UserForm1").Properties("Caption") = "myCaption"
End Sub
Run Code Online (Sandbox Code Playgroud)

我尝试将"标题"更改为"标题",同样的错误.此错误发生在我尝试设置WidthHeight属性时,并非总是在第一次,但是当我再次运行代码来调整大小时.

编辑1:启用宏设置中的"信任对VBA项目对象模型的访问".

编辑2:创建新工作簿和用户窗体时不会发生错误.在工作簿中重新创建已发生错误的UserForm时,确实会发生这种情况.

编辑3:添加Unload UserForm1Set UserForm1 = Nothing之前没有帮助.

编辑4:对于新工作簿,如果我创建UserForm并从模块运行此代码,但右键单击UserForm - > View Object后,我收到一个错误:"无法将焦点移动到控件,因为它是不可见的,未启用,或者不接受焦点的类型." 当我确认,在连续的宏运行中,我收到错误,如在帖子标题.

编辑5:Excel 2010和2016上也是如此.

Ahm*_* AU 2

可以简单地尝试这个

Sub myTest()
 ThisWorkbook.VBProject.VBComponents("UserForm1").Activate
 ThisWorkbook.VBProject.VBComponents("UserForm1").Properties("Caption") = "myCaption"
End Sub
Run Code Online (Sandbox Code Playgroud)

它可以在 Excel 2007 中运行,并且预计可以在任何版本中运行。请参考我对将用户表单导入 VBComponents 后无法读取属性的帖子的回答