Excel、Compile VBAProject - 更改模块的编译顺序

col*_*mik 5 excel vba module excel-2007

假设我们在 Excel 2007 的 Visual Basic 编辑器中。我们创建一个模块,名为modGlass

Sub VolatileGlass()
    Dim Glass As shiny_surface

End Sub
Run Code Online (Sandbox Code Playgroud)

然后我们创建第二个模块,名为modMetal

Sub durableMetal()
    Dim metal As metal_compound

End Sub
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

两个模块中的子程序都包含错误:"User-defined type not defined."

当我使用“调试:编译 VBAProject”菜单项编译项目时,modGlass模块始终首先编译。如果我:

  • 双击modMetal模块并编译(它?)或
  • 重命名modMetalamodMetal(以便金属模块现在位于项目的模块树层次结构中的第一个)

尽管如此,modGlass模块还是首先被编译。

问题:如果我在 VBE 中有一个包含多个模块的项目,有没有办法指定模块的编译顺序?

我真的不需要这个功能,但我只是好奇是否有一些快速的方法来做到这一点。我使用的是 Excel 2007。

Sid*_*out 4

模块不是根据名称编译的,而是根据创建的顺序编译的。所以前面加“a”也没关系modMetal

为了测试它,创建两个模块。确保两个模块都有错误。当您编译它时,您会注意到首先创建的模块将首先被编译。现在删除第一个模块并重新创建它。这次当你编译它时,第二个(不是新创建的)首先被编译:)

不,不幸的是没有直接的方法(据我所知)来指定该序列。然而,肮脏的方法是基于我上面建议的。将所有数据复制到记事本,然后删除所有模块,然后从头开始重新创建它们(按照您要编译它们的顺序)

华泰