2014-01-14 25 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