我有一个数组,我需要填充显示器上的标签参考。我设法将我的问题减少到以下MWE:
Private Sub Button1_Released()
Me.TestLabel.Caption = "Button1"
End Sub
Private Sub Button2_Released()
Dim o As MSForms.Label
Set o = Me.TestLabel
o.Caption = "Button2"
End Sub
button1的代码在buttton2失败时显示消息,“对象ILabelControl的方法标题失败(0x80010105)”。
TypeName(Me.TestLabel)返回“Label”。当我将Dim更改为“Label”而不是“MSForms.Label”时,我得到的行为看起来像是一个未被初始化的变量被访问。例如:有时button2会在标签中生成中文字符,通常没有任何反应,但VBA模块会崩溃。
我尝试删除并恢复typelib引用但没有效果。我已经尝试将office v16 fm20.dll中的引用更改为syswow64 v14 fm20.dll而没有任何效果。
这是一台以前运行的应用程序,在一台机器上开发并移动到另一台机器上。我考虑重新创建显示器,但MWE来自新显示器,在新机器上创建,只有一个标签和两个按钮。
相当困在这里。
ed:将dim从MSForms.Label更改为Object working