2016-08-03 71 views
1

舉例來說,我有兩個數字0,1的列表,我想運行在VBA一個腳本是這樣的:VBA - 有沒有類似的列表?

for i in list: 
    if i in string: 
     do something 
    end if 

即我想先檢查,如果「0」是一些字符串,然後做一些事情,然後檢查字符串中是否有「1」,然後做一些事情等等。在python中,我將有一個元組[[0,1]]並且像那樣做,但是我怎麼去解決這個問題呢?在VBA中?

回答

4

你的意思是這樣嗎?可以使用陣列(我想是技術上當沒有數據類型被定義的元組)

For Each i In Array("0", "1", "2", "3") 
    If InStr("1289", i) Then 
     '// Do Something 
    End If 
Next 

類似地:

Dim list As Variant 
Dim someString As String 

someString = "1289" 
list = Array("0", "1", "2", "3") 

For Each i In list 
    If InStr(someString, i) Then 
     '// Do Something 
    End If 
Next 

加成筆記:

InStr()沒有按實際上返回True/False它返回另一個字符串中的子串的開始位置,從左到右讀取。但是,在這種情況下,我們可以依靠VBA的隱式轉換來評估大於0的任何值,因爲True因爲它在If語句中使用。

+0

確切的說,謝謝! – user33484

+0

只是一個額外的問題,如果我想打電話說,數組中的第三項 - 我該怎麼做? – user33484

+0

假設你已經將數組賦值給一個變量:'MsgBox list(2)'(數組在VBA中默認爲零,所以2實際上是第三項) –