设置多页值属性会使Excel崩溃

时间:2019-06-28 13:49:09

标签: excel vba crash multipage

我有一个多页用户窗体控件,其中包含两个页面,以及用于取消,返回,下一个和完成的按钮控件。

当我在“后退”按钮子项中通过减去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

有想法吗?

1 个答案:

答案 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)

多页损坏。更换控件即可解决问题。