2016-07-24 24 views
0

我在Excel中使用VBA宏很新。我想檢查一組其他字符串值中的字符串值。例如:值cc變量("Q6", "_Q6", "1_Q", "2_Q", "3_Q", "4_Q")其中cc可能是Q6如果在VB中使用「in」的等效Excel中的

我的僞代碼:

If cc in ("Q6", "_Q6", "1_Q", "2_Q", "3_Q", "4_Q") Then 

我不知道要到位的in什麼操作。那麼,應該怎樣而不是in,因爲它目前給我的語法錯誤。非常感謝你的幫助。

回答

1

您可以使用Filter函數,如果找到匹配項,它將返回一個字符串數組。對於你的例子:

UBound(Filter(Array("Q6", "_Q6", "1_Q", "2_Q", "3_Q", "4_Q"), "Q6", True, vbBinaryCompare))

返回1但要注意,如果第三個參數是False那麼它將返回不輸入匹配陣列,這將是5的項目。

一個更完整的例子:

Option Explicit 

Sub Test() 

    Dim varData As Variant 
    Dim strCC As String 
    Dim varFilter As Variant 
    Dim intCounter As Integer 

    varData = Array("Q6", "_Q6", "1_Q", "2_Q", "3_Q", "4_Q") 
    strCC = "foo" 
    varFilter = Filter(varData, strCC, True, vbBinaryCompare) 
    For intCounter = LBound(varFilter) To UBound(varFilter) 
     Debug.Print varFilter(intCounter) 
    Next intCounter 

End Sub