【发布时间】:2017-04-04 21:13:09
【问题描述】:
我一直在寻找几个小时,我希望有人可以在这里帮助我。
我正在 vba 中创建一个表单,我想在其中动态添加列表框。添加了列表框,因此按计划进行。但是,我似乎无法更改列表框的宽度和高度。所有其他的东西都在改变。这是我的代码:
Dim lb As MSForms.ListBox
Set lb = Me.controls.add("Forms.Listbox.1")
With lb
.ColumnCount = 4
.Left = 180
.Top = 16
.MultiSelect = 1
.Height = 270
.Width = 665
End with
我注意到的另一件事是高度和宽度不在 ListBox 的属性列表中。难道是我使用了错误的 ListBox 类型?
编辑:它变得陌生。当我逐行浏览代码时,它可以正常运行,并且ListBox的大小是我想要的。
【问题讨论】:
-
代码看起来不错。我创建了一个表单,它从几个组合框中获取高度和宽度,并将这些尺寸发送到您的代码的编辑副本。您是否尝试在更新后添加 Me.Repaint?
-
Me.Repaint 不起作用,但逐行查看代码似乎可行。
-
ListBox 创建后还有什么事情发生吗?
-
我找到了解决方案:创建后,将项目添加到列表框中,添加项目后我再次设置了高度和宽度。这似乎可行,但我仍然不明白为什么在逐行浏览代码时它会起作用。