首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >激活最先启动的工作表的Userform

激活最先启动的工作表的Userform
EN

Stack Overflow用户
提问于 2015-02-21 12:38:43
回答 1查看 1.9K关注 0票数 1

我有一个用户表单,没有几个按钮可以运行不同的宏。在宏执行结束时,它会隐藏用户。我用以下代码重新设置了userform的“关闭”按钮:

代码语言:javascript
复制
Private Sub UserForm_QueryClose _
  (Cancel As Integer, CloseMode As Integer)
'   Prevents use of the Close button
    If CloseMode = vbFormControlMenu Then
        hmm
        Cancel = True
    End If
End Sub

嗯,隐藏用户。现在的挑战是假设有3个工作簿。

  1. 工作簿A:已启用宏的工作簿,我在其中为用户窗体和子程序编写了代码
  2. 工作簿B:在这里我按下键组合,这显示了用户从
  3. 工作簿C:我想在同一个用户的帮助下执行相同的宏

现在,当我按下键组合(工作簿C被激活时),它会激活其他工作簿(我首先启动用户的工作簿),然后显示userfrom。尽管当我按下用户上的“一些”按钮时,它会运行相关的宏,但是会激活首先启动表单的工作簿。

我希望在按下这个键组合以显示userfrom的地方激活相同的工作簿(因此它不会转到以前的工作簿)。请帮帮忙

“守则”:

这是关键组合,并已保存在Microsoft对象的ThisWorkbook中。

代码语言:javascript
复制
Private Sub Workbook_Open()
    Application.OnKey "%{s}", "LoadMenu"
End Sub

这些过程位于代码模块中,加载并隐藏用户(名为MainMenu)。

代码语言:javascript
复制
Private Sub LoadMenu()

MainMenu.Show

End Sub



Sub hideMenu()

MainMenu.Hide

End Sub

这是一个示例子例程,当我们单击userfrom上的一个按钮时运行,

代码语言:javascript
复制
Sub highlightYellow()
    selection.Interior.Color = vbYellow
    hideMenu ' This hides menu after the execution
End Sub

现在,我第一次像前面说的那样,在某些工作簿上运行宏(通过第一次调用userform并单击它上的一个按钮),然后当我转到其他工作簿,然后再按这个键组合时,当我第一次使用这个东西时,它会带我回到第一个工作簿,当我按下突出显示按钮时,它会突出显示我按下键组合的工作簿,但最后不知道为什么第一个工作簿会自动被激活。

请参考下面的工作簿链接,请打开2-3个新的工作簿,然后一起试用。

https://www.dropbox.com/s/952lrsrsglt9f6y/Test%20Book.xlsm?dl=0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-21 22:28:09

作为对象的所有用户表单。每次运行时将它们分开,使它们具有独立的实例。尝尝这个

Private Sub LoadMenu()

Dim frmTemp as MainMenu

Set frmTemp = New MainMenu

frmTemp.Show

Unload frmTemp

End Sub

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28645896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档