2017-07-23 140 views
1

我正在編寫一個代碼,其中我有一個for循環,其中給出了一個變量(名爲VType)的一些值。 For循環用於一系列i變量。現在我想通過連接兩個變量的名稱來創建一個新變量。例如,如果我= 1,那麼我想變量VType1。這是我的一段代碼。添加兩個變量的名稱並創建一個新的動態變量

nrec = Split(Split(ie.document.body.innerHTML, "Found <strong>")(1), "</strong> records")(0) 
If nrec = 1 Then 
    lnk.Click 
Else 
    For j = 1 To nrec 
     link.Click 

     Do While ie.readyState <> 4: Wait 5: Loop 

     Application.Wait (Now + TimeValue("0:00:01")) 
     'VType , j = GetType 
     'Application.Wait (Now + TimeValue("0:00:01")) 
     IMO , j = GetValue("IMO:") 
     'MMSI = GetValue("MMSI:") 
     YBuilt , j = GetValue("Year Built:") 
     Flag , j = GetValue("Flag:") 
     DWT , j = GetValue("Deadweight:") 
    Next j 

    num = "1 - " & IMO1 
    For i = 2 To nrec 
     num = num & vbCrLf & i & "abc" 
    Next I 
    fin = InputBox(num, nrec & " records found for a. please select right one.") 

    Exit For 
End If 
+3

我聽說過一種叫*陣列* ... –

+2

[如何創建動態的變量名VBA(可能的重複https://stackoverflow.com/questions/38254337/how-to -create-動態可變名稱-VBA) – trincot

回答

0

沒有辦法直接做你所特別要求的東西。但是,您可以使用數組來獲得類似的結果。數組是不是可以在一個單一的答案貼來解釋的話題,但如果你做一些調查,你也許可以弄清楚如何在下面可能是有用的...

Dim VTtyp(0 to i) as string 


'while Looping... 
Vtype(i) = "Whatever you want stored in this round of i" 

當你的代碼完成後,您將所有字段保存爲可以從該數組中調用的變量。一個例子是,如果你想打電話給號碼爲「2」的號碼,你可以輸入:Vtype(2),它會從2次迭代中調用文本。

這個例子還是非常簡化,有些事情需要考慮,比如尺寸變暗,改變暗淡度,保存數組等等,這是你需要進一步研究的。然而,底線是「沒有辦法做你想做的事。」