Excel VBA 表单已关闭,但我无法切换到其他 .xlsm 工作簿



我有一个工作簿"a",里面有一个宏,并设置了快捷键"Ctrl+Q",当我按"Ctrl+Q"时,会弹出一个表单,当我按下"ESC"时,表单会关闭,因为我添加了一个属性"Cancel"设置为TRUE的按钮"CommandButton1"。

在代码中,我这样关闭表单:

Private Sub CommandButton1_Click()
    Unload Me
End Sub

它运行良好,但问题是在关闭工作簿"A"之前,我无法切换到其他打开的工作簿,有人知道问题是什么吗?

非常感谢!

代码是这样的:

VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} Get_Photo 
   Caption         =   "abc"
   ClientHeight    =   3120
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   4710
   OleObjectBlob   =   "Get_Photo.frx":0000
   StartUpPosition =   1  'CenterOwner
End
Attribute VB_Name = "Get_Photo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub CommandButton1_Click()
    Unload Me
End Sub
Sub UserForm_Initialize()
    With Get_Photo
        .Caption = caption_Name
        .Width = 430
        .Height = 270
    End With
    With WebBrowser1
        .Width = 540
        .Height = 300
        .Navigate ("www.google.com/images/logos/images_logo_lg.gif")
    End With
End Sub

上面的表单包含一个网络浏览器和一个取消按钮。我在工作表中添加了一个按钮,宏代码为Get_Photo.Show单击该按钮时,表单将显示,其中包含一张图片。但当我在按"ESC"后关闭表单时,我无法切换到其他xlsm工作簿,但xlsx工作簿可以。。

@SiddharthRout,我添加了更多的评论来重现这个问题——aaron 30分钟前

最后,我能够复制它:)让我检查一下,然后回复你。我无法切换到其他xlsm/xlsx工作簿。它一直给我看原始工作簿。Alt+Tab也拒绝工作。如果我按下命令按钮,它不会有任何例外Siddharth Rout 1分钟前编辑

我无法解释这种行为。这可能是一个错误(然而,我还没有看到任何关于它的文档)。

这将解决你的问题。(尝试并测试

将这两行额外的代码放在工作表的按钮代码中,从您调用useeform的位置开始。

Private Sub CommandButton1_Click()
    UserForm1.Show
    Application.ShowWindowsInTaskbar = False
    Application.ShowWindowsInTaskbar = True
End Sub

HTH-

Sid

最新更新