使用Sublime Text或Notepad ++作为VBA的编辑器和构建器

Hol*_*ene 9 excel vba excel-vba sublimetext

好的,所以我必须在我的新工作中学习VBA,因为我们使用Excel或多或少的东西.Excel中的内置VBA编辑器让我绝对疯狂 - 感觉它不是以有效的方式编写代码.

近年来,我一直在使用Sublime Text进行编码.在Sublime中有一个用于编写VBA vbScript的插件,但我不明白如何将我的Sublime编写的代码链接到我的Excel文档.假设我尝试运行以下文件

Sub test()
  Debug.Print "Hello, World"
End Sub
Run Code Online (Sandbox Code Playgroud)

从Sublime Text,我从控制台得到以下内容[Finished in 0.1s],但没有打印输出.

我的问题是:有没有人有解决方案如何从Sublime Text或Notepad ++在Excel中运行VBA?我仍然是VBA中的大量菜鸟,因此能够在测试代码旁边真正看到Excel工作簿上的效果会很好.

小智 4

VBA 代码并在 Sublime 中编写的问题在于 VBA 嵌入到 Excel 中,因此您不能只构建在 Sublime 中编写的宏


  • 解决此问题的一种方法是编写 VBA 代码并将其复制粘贴到 VBA 编辑器中(如上所述)。当您开始使用多个模块、类等时,这是无法管理的。

  • 第二种方法是使用 VBA 的导入/导出功能。您可以将模块和类导出到文件中*.bas*.cls并直接在 Sublime Text 中编辑它们。为此,您可以使用Ron De Bruin网站上的宏。只需将代码复制到单独的模块中,它就会将当前项目中的所有代码导出到单独的文件中,您可以在 Sublime Text 中编辑这些文件。在 Sublime 中进行更改后,只需使用宏将所有文件再次导入到 VBA 编辑器中即可。您可能还想通过注释来稍微更改 VBA 代码

 

If wkbSource.VBProject.Protection = 1 Then
    MsgBox "The VBA in this workbook is protected," & _
        "not possible to export the code"
    Exit Sub
End If
Run Code Online (Sandbox Code Playgroud)

...否则它不会导入回同一个电子表格。