2013-12-09 92 views
1

我也同時包含數字和字符串的一些數據值Excel的VBA檢查,如果單元格中包含數據時混合

Name Code 

Bob 1 

Alice 2 

Bob 33AL 

Dan AFAL 

Alert AL99 

Bob ALP 

我想選擇其中的「代碼」列中包含「AL」的地方名稱的字符串。

如果我做

If InStr(0, Cells(j, Code_column).Value, "AL", vbTextCompare) <> 0 Then 

然後我的循環不會因爲在列中的某些點的數值運行。

我已經試過

If InStr(0, CStr(Cells(j, Code_column).Value), "AL", vbTextCompare) <> 0 Then 

但我得到同樣的錯誤。我應該嘗試什麼?預循環檢查它是否是數字?

+1

'如果InStr函數(1,細胞(J,Code_column)。價值, 「AL」,vbTextCompare)<> 0 Then'爲我工作。 –

+0

使用自動過濾器來完成此操作並避免循環。 – brettdj

+0

@brettdj你能告訴我該怎麼做嗎?順便提一下,我正在循環創建一個數組,以便以後可以自動篩選複製和粘貼。我需要以5種方式分割數據。如果它包含「AL」,則分開,如果不符合標準2,則分開,如果不符合,則按照不同的標準依次分開。因此,我不僅需要過濾具有「AL」的記錄,還需要跟蹤沒有「AL」的記錄以供以後過濾。 – Amatya

回答

2

在代碼是這樣的數據在列的活性紙的A:B

可以做同樣的事情手動而不代碼

然後,在這兩種情況下與輸出工作(加上再反向邏輯第二個條件)

Sub CookHooker() 
Dim rng As Range 
ActiveSheet.AutoFilterMode = False 
Set rng1 = Range([a1], Cells(Rows.Count, "B").End(xlUp)) 
rng1.AutoFilter Field:=2, Criteria1:="=*AL*", Operator:=xlAnd 
End Sub 
相關問題