如何在宏名称以特定字符串开头的位置运行多个宏?

时间:2018-02-09 04:05:26

标签: vba excel-vba excel

我已经创建了几个我想注册的自定义函数。目前,我有一个不同的程序,我为每个功能指定了注册(该部分没有问题)。但是,我知道注册所有这些函数的唯一方法是在另一个过程中按名称调用每个宏,如下所示:

Sub spRegisterFunctions()
 Call spRegisterCUSTOMAfunction
 Call spRegisterCUSTOMBfunction
 Call spRegisterCUSTOMCfunction
 Call spRegisterCUSTOMDfunction
End Sub

我实际上正在寻找更具动感的内容,以便每次创建新功能时,它都会相应的" spRegister ......"程序,我不必记得添加" Call"代码到" Sub spRegisterFunction()"该特定功能的程序。
这是尝试做的一个例子:

Sub spRegisterFunctions()
 Dim mc as Macro
 For Each mc in VBProject("NameOfProject").Module("NameOfModule")
  If Left(mc.Name,10)="spRegister" then
   Call mc
  End If
 Next mc
End Sub

正如您所看到的,我尝试在特定模块中运行任何名称以" spRegister"开头的宏。显然,上面的代码不起作用,部分原因是其中一些对象甚至不存在。

有没有办法做到这一点?

0 个答案:

没有答案