Excel VBA:更新用户表单的位置/大小留下踪迹

我对用户表单非常熟悉,所以我决定尝试一下,并尝试让用户表单增长/缩小,并根据checkbox更改事件重新定位以alignment中心。

代码按预期工作,但有一个问题。 缩小用户窗体时,用户窗体会留下循环中设置的所有大小增量的轨迹。 这使得程序看起来不那么“stream畅”。 我已经包括了问题的截图以及相关的代码。

我试过包括DoEventsApplication.ScreenUpdating变体。 ScreenUpdating似乎什么都不做,而DoEvents将path数量减半了,但是在执行期间,使用户表单中的文本变得有些疯狂。

注意:checkbox名为“MyCheckBox”,用户窗体名为“ColumnSelect”

也许我试图做太多与Excel内存或瓦特/ ..任何帮助,虽然赞赏。 谢谢!

 Private Sub MyCheckBox_Change() Dim w As Integer Application.ScreenUpdating = False If MyCheckBox.Value = True Then For w = 425 To 838 Step 7 ColumnSelect.Width = ColumnSelect.Width + 7 ColumnSelect.Left = ColumnSelect.Left - 3.5 Next w Else 'DoEvents For w = 838 To 425 Step -7 ColumnSelect.Width = ColumnSelect.Width - 7 ColumnSelect.Left = ColumnSelect.Left + 3.5 Next w End If Application.ScreenUpdating = True End Sub 

在这里输入图像说明

我已经testing了我的家庭(游戏)文件,这比我在提出问题时使用的笔记本电脑/显示器设置function强大得多。 调整用户表单时没有明显的痕迹,所以用户的ASH似乎是正确的,他认为这个问题涉及PC /监视器而不是代码。

如果你想得到答案,我会很乐意把它给你,只要提交你自己的。 否则,我会将此标记为答案。 谢谢你的帮助