Bellow是我尝试动态创建一个框架,为其添加(动态创建的)标签,然后将所述框架添加到我的用户窗体中的另一个框架。
但是在with部分中它给出错误91“对象变量或没有设置块变量”
我做错了什么?在保持干净的现代/高效代码的同时,真的很难做更高级的vba逻辑。
Dim newf As MSForms.Frame
'First the description
With newf.Controls.Add("Forms.Label.1")
'Formating it
.SpecialEffect = fmSpecialEffectEtched
.Caption = ComboBox1.Value
.Height = 20
.Width = ComboBox1.Width - 10
.Left = 10
newp.Font.Size = 12
End With
'FrameProduct already pre exists
Me.FrameProducts.Controls.Add newf
答案 0 :(得分:0)
原来我只是设置变量,而不是创建对象,似乎创建控件的唯一方法是我需要调用.controls.Add方法,所以解决方案最终成为这些光滑的嵌套withs
Dim newf As MSForms.Frame
Set newf = Me.FProducts.Controls.Add("Forms.Frame.1")
With newf
.Visible = False
'First the description
With .Controls.Add("Forms.Label.1")
.SpecialEffect = fmSpecialEffectEtched
.Caption = ComboBox1.Value
.Height = 20
.Width = ComboBox1.Width - 10
.Left = 10
.Font.Size = 12
End With
.Visible = True
End with