2014-01-14 26 views
0

我得到了这样的事情:如何动态计算UBound()值?

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”)*

*我已经宣布所有VAR和我当然有“我”表

“下标越界”

任何想法?

+0

究竟是你想做些什么? –

+0

@SiddharthRout我试图循环所有表,而不必为每个表做一个循环,因为里面的代码对所有表都是一样的 – Stephenloky

+0

如果你在使用表格,那么你为什么使用'ubound'?这用于数组。 –

回答

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 
+0

感谢您的解释,我认为我可以这样做。 – Stephenloky