如何动态计算UBound()值?

时间:2014-01-14 15:53:41

标签: vba excel-vba excel

我有这样的事情:

For i = 1 to 4

  cur_tab = "tab_event" & i  

  For e = 1 to Ubound(cur_tab)
    ' do something
  Next

Next

我需要动态更改cur_tab,但由于Ubound(cur_tab)返回一个字符串(例如)* Ubound(“tab_event1”)*

,它无法正常工作

*我已宣布所有变量,当然我有'我'表

“下标超出范围”

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您要实现的目标称为Variable Variables。它在VBA中不起作用。如果您有一个共同的程序,那么使用一个单独的程序并反复使用它。

例如,您的代码可以写为

Sub Sample()
    '
    '~~> Rest Of Your Code
    '

    For e = 1 To UBound(tab_event1)
        MySub
    Next

    For e = 1 To UBound(tab_event2)
        MySub
    Next

    For e = 1 To UBound(tab_event3)
        MySub
    Next

    For e = 1 To UBound(tab_event4)
        MySub
    Next

    '
    '~~> Rest Of Your Code
    '
End Sub

Sub MySub()
    MsgBox "Hello World!"
End Sub