我有一个多页用户窗体控件,其中包含两个页面,以及用于取消,返回,下一个和完成的按钮控件。
当我在“后退”按钮子项中通过减去1设置multipage.value
属性时,Excel冻结/挂起。
Private Sub btn_Back_Click()
' Set the buttons
Me.btn_Next.Enabled = True
Me.btn_Finish.Enabled = False
Me.btn_Back.Enabled = False
Me.multipage_add_xfr.value = Me.multipage_add_xfr.value - 1
End Sub
通过在btn_Next_Click()
子项中添加1来“进入”第二页的代码很好用:
Me.multipage_add_xfr.value = Me.multipage_add_xfr.value + 1
最后,在UserForm_Initialize()
上,将多页控件设置为第一页(例如value = 0)也会使Excel崩溃。
Me.multipage_add_xfr.value = 0
更新 以下代码适用于在当前项目中创建的新用户窗体,但旧用户窗体无效。
Private Sub CommandButton1_Click()
Me.CommandButton1.Enabled = False
Me.CommandButton2.Enabled = True
Me.MultiPage1.value = Me.MultiPage1.value + 1
End Sub
Private Sub CommandButton2_Click()
Me.CommandButton2.Enabled = False
Me.CommandButton1.Enabled = True
Me.MultiPage1.value = Me.MultiPage1.value - 1
End Sub
Private Sub UserForm_Initialize()
Me.CommandButton2.Enabled = False
Me.CommandButton1.Enabled = True
Me.MultiPage1.value = 0
End Sub
有想法吗?
答案 0 :(得分:1)
尝试一下。
Private Sub btn_Back_Click()
If multipage_add_xfr.Value < 1 Then Exit Sub '<~~ Add this one line
Me.btn_Next.Enabled = True
Me.btn_Finish.Enabled = False
Me.btn_Back.Enabled = False
Me.multipage_add_xfr.Value = Me.multipage_add_xfr.Value - 1
End Sub
最后,在UserForm_Initialize()上,将多页控件设置为第一页(例如value = 0)也会使Excel崩溃。
在这种情况下,删除控件并重新创建它。如果仍然不能解决问题,那么您可能不得不重新创建表格...
您可能还想检查一下将0
中的Private Sub UserForm_Activate()
设置是否可以解决问题?
请注意将vba强制更改为我的代码的小写字母-是否表示存在问题? – 54分钟前的Zephyr Mays
通常在声明同名变量时会发生
从聊天:Mortem档案证实了我的怀疑。声明了一个同名变量。
Public Sub update(ByVal value As Long, _
Optional ByVal MaxValue As Long = 0, _
Optional ByVal Status As String = "", _
Optional ByVal DisplayPercent As Boolean = True)
多页损坏。更换控件即可解决问题。