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

时间:2013-03-22 19:52:19

标签: excel excel-vba module excel-2007 vba

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

Sub VolatileGlass()
    Dim Glass As shiny_surface

End Sub

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

Sub durableMetal()
    Dim metal As metal_compound

End Sub

enter image description here

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

当我使用 Debug:Compile VBAProject 菜单项编译项目时,modGlass模块总是先编译。如果我:

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

仍然首先编译modGlass模块。

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

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

1 个答案:

答案 0 :(得分:4)

模块不是根据它们的名称编译的,而是按照它们的创建顺序编译的。所以如果你在modMetal

之前添加“a”并不重要

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

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

HTH