显示userform后,将焦点设置回应用程序窗口

Gre*_*ret 8 excel vba focus excel-vba userform

当显示用户表单(运行其Show方法)时,它不仅显示在屏幕上而且还获得焦点(例如击键的目的地).

比如说,userform是一个自定义工具栏.它的Show火灾Workbook_Open()但形式本身相对较少使用,因此我们希望焦点在其出现后立即返回主应用程序窗口.

不幸的是,似乎SetFocus方法对应用程序对象无效.

那怎么办?

我想我的例子的解决方案就在之后

Private Sub Workbook_Open()
    [...]
    UserForm1.Show
Run Code Online (Sandbox Code Playgroud)

Pat*_*ier 17

我用这个:

AppActivate Application.caption

这会将焦点从用户窗体重置为Excel工作表.

  • 这似乎是我也尝试过的更普遍的版本.也许`ThisWorkbook.Application.Caption`将是最坚固的解决方案.. (3认同)

Gre*_*ret 5

为我

AppActivate ThisWorkbook.Application
Run Code Online (Sandbox Code Playgroud)

在声明之后Show似乎工作正常。

在其他情况下

AppActivate "Microsoft Excel"
Run Code Online (Sandbox Code Playgroud)

也许也可以。