在创建一些UserForms之后,我的用于更改工作表的宏不再起作用了。认为问题是UserForms没有正确卸载,但似乎并非如此。
当我点击按钮(位于自定义弹出菜单中)转到另一张表时,它可以正常工作,但表单已冻结,我无法滚动或突出显示。
但如果我通过点击选项卡更改工作表,那么一切都很好。因此看起来我的代码激活另一张表是错误的。
如果重要的话,我的Excel工作簿会有一些UserForms
,Worksheet_Change
和Worksheet_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在另一个模块中,那么当它被调用时它将解决冻结问题。
完成模块在UserForm关闭后再次激活工作表(也称为帮助冻结问题)。
在允许我滚动之前,似乎Excel正在等待我单击一个单元格。我怎样才能解决这个问题?
感谢您的帮助:)