Vba Userform停止其他工作表的滚动

Vba Userform停止其他工作表的滚动,vba,excel,Vba,Excel,我有一些用户表单。一个是显示说明的弹出窗口,另一个用于输入数量。问题是,当我单击一个并关闭它时(每一个都用卸载我),然后当我用快捷键切换工作表时。激活宏按钮,工作表将不会滚动。看起来床单冻结了。我可以通过加载userform并在当前工作表上再次关闭它以“解冻”工作表来解决这个问题 知道为什么会这样吗 用户窗体 下面是我如何从一个按钮调用它 Sub Instructions() With UserFormInstructions .StartUpPosition = 0 .Left

我有一些用户表单。一个是显示说明的弹出窗口,另一个用于输入数量。问题是,当我单击一个并关闭它时(每一个都用
卸载我
),然后当我用
快捷键切换工作表时。激活
宏按钮,工作表将不会滚动。看起来床单冻结了。我可以通过加载userform并在当前工作表上再次关闭它以“解冻”工作表来解决这个问题

知道为什么会这样吗

用户窗体

下面是我如何从一个按钮调用它

Sub Instructions()
With UserFormInstructions
    .StartUpPosition = 0
    .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
    .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
    .Show
End With
End Sub
工作表按钮


谢谢

听起来像是屏幕更新和工作表保护的结合。不要使用
.Protect
.Unprotect
只需在
工作簿中保护工作表_Open
并使用
UserInterfaceOnly:=True
选项即可。我知道您正在按钮代码中将其重置为
True
,但仍然可以为我尝试一下。。。在UserForm的
UserForm\u QueryClose
事件中,将此
Application.screenUpdatement=True
现在试一试,表单的模式属性设置为什么?@braX modal设置为False,已尝试为True,但结果仍然相同
Sub Instructions()
With UserFormInstructions
    .StartUpPosition = 0
    .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
    .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
    .Show
End With
End Sub
Sub goto630()
Application.ScreenUpdating = False

Dim sht2 As Worksheet
Set sht2 = ThisWorkbook.Worksheets("Foundation Plates")
Dim sht3 As Worksheet
Set sht3 = ThisWorkbook.Worksheets("630 BOM")

sht3.Activate
sht3.Unprotect

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

sht2.Protect
sht3.Protect _
        DrawingObjects:=False, _
        Contents:=True, _
        Scenarios:=False, _
        UserInterFaceOnly:=False, _
        AllowFormattingCells:=True
Call NoSelect

Set sht3 = Nothing
Application.ScreenUpdating = True
End Sub

Sub NoSelect()
Application.ScreenUpdating = False

    Range("D1").Select
    ActiveWindow.SmallScroll ToLeft:=4

Application.ScreenUpdating = True
End Sub