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

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

 Sub VolatileGlass() Dim Glass As shiny_surface End Sub 

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

 Sub durableMetal() Dim metal As metal_compound End Sub 

在这里输入图像说明

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

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

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

仍然, modGlass模块首先被编译。

问题是:如果我在VBE中有一个包含多个模块的项目,有没有一种方法可以指定哪些模块被编译的顺序?

我不太需要这个function,但是我只是好奇如果有一些快速的方法来做到这一点。 我正在使用Excel 2007。

模块不是根据它们的名字进行编译,而是按照它们的创build顺序进行编译。 所以,如果你在modMetal之前modMetal “a”,那真的没关系

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

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

HTH