【问题标题】:How do I open a Visual Basic when I start Excel?启动 Excel 时如何打开 Visual Basic?
【发布时间】:2019-08-06 22:53:57
【问题描述】:

我在site 上找到此代码。

Private Sub Workbook_Open()
    UserForm1.Show
End Sub

它不工作。 例如,我想在启动 Excel 后打开 «Visual Basic»,然后打开窗口 Module1。可行吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    要在特定模块上打开 Virtual Basic Editor (VBE),请尝试以下操作

    Private Sub Workbook_Open()
        Application.VBE.MainWindow.Visible = True
        Me.VBProject.VBComponents("Module1").Activate
    End Sub
    

    【讨论】:

    • 这段代码应该可以工作,但我建议 OP 应该有一个按钮(或者可能是一个菜单选项)来启动表单。我怀疑 OP 从某个地方复制了代码,但也许他的表单没有被称为 UserForm1,这就是它没有启动的原因?
    • @Zac OP 请求打开 VBE 的代码,但向我们展示了应该打开用户窗体的代码。我认为后者没有任何意义
    • 我并不是说你没有回答这个问题。然而,我质疑 OP 的方法。不知道他们为什么要使用代码来做到这一点。可以用快捷键或excel 开发者菜单打开编辑器。不明白为什么 OP 要这样做
    • 也许 OP 厌倦了每次打开他的项目 WB 时非常冗长和困难的 ALT+F11 快捷键
    • 等一下!我试过这个Module1.Show 不工作! @Tim Stack 你是对的!我正在测试很多代码。但要工作,您需要重新打开 «Excel»。我真的厌倦了按ALT+F11。感谢上面的代码。
    【解决方案2】:

    请注意,Private Sub Workbook_Open() 应该位于 ThisWorkbook 中,而不是模块中,如果是,则不会调用它。

    【讨论】:

      【解决方案3】:

      @TimStack 的替代方案:
      (虽然我更喜欢他的方法)

      Private Sub Workbook_Open()
          SendKeys "%{F11}"
      End Sub
      

      【讨论】:

      • SendKeys 不确定,会导致很多问题。尤其是在为 VBE 发送密钥时,我看到人们删除了整个代码的情况
      • @L8n 此代码也有效!但我最好听听我们的··· Tim stack 的代码。
      • @L8n 再问你一个问题!如果我打开默认选项卡怎么办,我有自己的选项卡,名为My Macro。我使用了这个SendKeys "%BP{F6}",但它不起作用!此外,我将此代码放在PERSONAL.XLSB 中以在所有书籍中工作.. 不工作···· 编译错误:检测到不明确的名称:Workbook.Open····我还有其他代码与Workbook_Open。如何一起使用?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多