使用macros更改工作表会导致工作表冻结

创build几个用户窗体后,我的macros用于更改工作表不再工作。 认为问题是UserForms没有正确卸载,但似乎并非如此。

当我点击button(它位于自定义popup菜单)转到另一张工作表,但工作表冻结,我不能滚动或突出显示,例如。

但是,如果我通过单击标签更改工作表,那么一切都很好。 所以看起来我的代码来激活另一个工作表是错误的。

我的Excel工作簿有一些UserFormsWorksheet_ChangeWorksheet_SelectionChange事件。

有没有更好的方法来做到这一点。 一些明显的工作,并注意冻结我的表后,它被激活?

表转到代码:

 Sub goto630() Application.ScreenUpdating = False Dim sht2 As Worksheet Set sht2 = ThisWorkbook.Worksheets(2) Dim sht3 As Worksheet Set sht3 = ThisWorkbook.Worksheets(3) sht3.Activate sht3.Protect _ DrawingObjects:=False, _ Contents:=True, _ Scenarios:=False, _ UserInterFaceOnly:=True, _ AllowFormattingCells:=True sht2.Visible = True sht3.Visible = True On Error GoTo 0 ActiveWindow.Zoom = 90 ActiveWindow.DisplayHeadings = True ActiveWindow.DisplayHorizontalScrollBar = True ActiveWindow.DisplayVerticalScrollBar = True Application.DisplayFormulaBar = True sht3.DisplayPageBreaks = False ThisWorkbook.Worksheets(1).Visible = False ThisWorkbook.Worksheets(4).Visible = False ThisWorkbook.Worksheets(5).Visible = False ThisWorkbook.Worksheets(6).Visible = False ThisWorkbook.Worksheets(7).Visible = False ThisWorkbook.Worksheets(8).Visible = False Set sht2 = Nothing Set sht3 = Nothing Application.ScreenUpdating = True End Sub 

UserForm代码:

 Private Sub UserForm_Click() Application.OnTime Now + TimeValue("00:00:01"), "Finish" Unload Me Call Module2.ScreenRefresh Exit Sub End Sub 

ScreenRefresh模块只是Application.ScreenUpdating = True读取有关同样的问题,如果ScreenUpdating是在另一个模块,然后调用时,将修复冻结问题。

完成模块在UserFormclosures后再次激活工作表(也称帮助冻结问题)。

看来Excel在允许我滚动之前正在等待我单击一个单元格。 我怎样才能解决这个问题?

谢谢你的帮助 :)