2014-04-22 49 views
1

我有一個我在vba中定義的字符串動態表(我精確的說它不是一個XL表),我想檢查這個表中是否存在特定的值。這裏是我的一部分功能:在vba動態表中查找值

Dim tableOfSizes() As String 
sizeTable(0)=size1 
sizeTable(1)=size2 
sizeTable(2)=size3 
'size2 and size3 are optional parameters of the function 

If instr(tableOfSizes, "Medium") <> 0 Then 
' Action if "Medium" is found in the table 
End If 

但似乎Instr不適用於表或至少,動態表的工作。這是問題嗎?

回答

1

對於1D陣列您可以使用以下方法。

路№1Filter function

If UBound(Filter(tableOfSizes, "Medium")) <> -1 Then 
    ' Action if "Medium" is found in the table 
End If 

路№2(for Excel-VBAApplication.Match

If Not IsError(Application.Match("Medium", tableOfSizes, 0)) Then 
    ' Action if "Medium" is found in the table 
End If 

對於多dimmension陣列您可以使用以下功能:

​​

然後:

If contains(tableOfSizes, "Medium") Then 
    ' Action if "Medium" is found in the table 
End If