2012-01-24 9 views
0

私は2つのワークシートを持っています。私は、以下のようにオートフィルタを使用するVBAを使用して多くの.AutoFilter ORのように動作する基準

シート1:

Username, Country, City 
User1, America, New York 
User2, America, Miami 
User3, America, Los Angeles 

のSheet2:

Country, City, Contact 
America, <>Miami, [email protected] 
America, Miami, [email protected] 

私のオートフィルタは、これまでのようになります。

0シート1を反復処理がされるべきであるの

結果:

シート1:行1(ユーザー1):市=ニューヨーク、前記コンタクト= "[email protected]"

シート1:行2(ユーザー2):市=マイアミ、前記コンタクト= "[email protected]"

シート1:ROW3(ユーザー3):市=ロサンゼルス、前記コンタクト= "[email protected]"

問題: 私が必要"<>マイアミ"はすべての都市をピックアップしません。

+2

'' <> Miami''は、オートフィルターで基準として使用されますが、それを検索することができます「ニューヨーク」の基準を設定することで、「マイアミ」と一致することはありません。言い換えれば、Sheet1の自動フィルタリングの基準としてSheet2の値を使用できますが、その逆はできません。 –

+0

.AutoFilterフィールド:= 4、Criteria1:=マイアミ、OR <>マイアミなど、このようなことは可能ですか? –

答えて

0

これは私の問題を解決した方法です。私は基準を使用するまで<が>マイアミをピックアップされていませんでした「〜<> *」

.... 
Dim City 
City = Worksheets("Sheet1").Range("C" & i) 'i = current row 

'I set the filter to current row data 
.AutoFilter Field:=14, Criteria1:=City 

'Check row count (cell count/no. of columns) 
rowCount = .Parent.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count/3 

'If the row count is < 2, no data, change the filter criteria to find other 
If (rowCount < 2) Then 
    .AutoFilter Field:=5, Criteria1:="~<>*" 
End If 
.... 
関連する問題