VBA - 是否可以从集合或其他存储位置调用subs或函数?

时间:2014-12-10 11:33:38

标签: vba call subroutine

非常自我解释,我有一组子/函数,我将会调用很多。我希望能够将它们存储在一个集合或类似的东西中,所以我可以写,例如:

for counter = 1 to 10
    call MetricSubs(counter)
next counter

这可能吗?

1 个答案:

答案 0 :(得分:1)

如果您总是以相同的顺序调用相同的方法,那么正确的方法是调用调用方法的方法:

Public Sub OuterMethod()
    ' do some stuff
    Call InnerMethod()

End Sub

Public Sub InnerMethod()

    Call MethodOne()
    Call MethodTwo()
    Call MethodThree()

End Sub

如果要调用的方法的包含或顺序发生变化,我猜它是可预测的和有限的集合。良好的功能编程将为每种情况提供父方法。您的代码将更易于阅读和维护。

Public Sub OuterMethod()

    If widget.isRed Then
        Call RedWidgetStuff()
    ElseIf widget.isBlue Then
        Call BlueWidgetStuff()
    Else
        Call NoWidgetStuff()
    EndIf

End Sub

Public Sub RedWidgetStuff()

    Call SetWidgetColor(Red)
    Call PaintWidget()
    Call FinishWidget()

End Sub

Public Sub BlueWidgetStuff()

    Call SetWidgetColor(Blue)
    Call PaintWidget()
    Call FinishWidget()

End Sub

Public Sub NoWidgetStuff()

    Call FinishWidget()

End Sub

如果您仍然认为需要将功能加载到集合中,我会要求您认真质疑您的方法。更好的程序员会为这个想法做鬼脸。