Excel无法正确处理Userform的卸载

时间:2018-03-28 08:57:33

标签: excel excel-vba vba

由于安全原因,我很遗憾无法分享这种情况发生的工作簿。但我想知道是否有人经历过以下情况,如果有的话,他们是如何解决的。

我遇到了一个问题,我使用

卸载了工作簿中的一个用户表单
Unload UserForm

虽然此用户表单已打开,但它也会更改Activesheet。代码完成运行后,似乎Activesheet虽然在视觉上已经改变了所有其他目的,但它仍然设置为前一个。

然后我无法滚动(除非我先双击进入单元格)并且整张表告诉我它已被锁定(直到我以某种方式触发更改程序或手动在另一张纸和另一张纸之间切换)。

我还尝试了Unprotect工作表,但这样做时,功能区继续说Unprotect sheet但奇怪的是,当我加载用户窗体时处于活动状态的工作表变得不受保护。

使用UserForm.Show加载Userform。我没有在我拥有的任何其他工作簿中体验过这种行为。

尝试过:

  • 切换EnablingEvents
  • 切换ScreenUpdating
  • 重置冻结窗格区域
  • 更改目标工作表的激活位置

一切都无济于事。有没有人遇到类似或知道这种行为可能会被体验的原因?

编辑:

加载程序:

Sub SearchRev_Button()
    If ConnectToDB() = True Then
        Review_Search.Show
        Call CloseConnections
    End If
End Sub

卸载程序:

Private Sub LoadReviewButton_Click()

    'Loads the selected review to be edited

    Application.Calculation = xlCalculationManual
    If Me.ResultListBox.ListIndex = -1 Then Exit Sub

    Select Case rs.Fields("ReviewMethod").Value
        Case "Review"
        If rs.Fields("ReviewMethod").Value = "ChangeReview" Then Review_ChangeReviewType.Show

        FetchReviewDetail ReviewID
        Unload Me ' <-- This is the line that unloads the userform to return to sheet
        Case "ISP"
        Unload Me
        ISP_Dash.Show

        Case Else
        MsgBox prompt:="You cannot make changes to this review", Title:=TitleString
    End Select

    Application.Calculation = xlCalculationAutomatic

End Sub

0 个答案:

没有答案