2016-12-02 9 views
0

2つの範囲が同じである必要があります(ただし、別々にソートされる可能性があります)。 rangeBにないrangeAの値を見つけることを試みています。Excel VBAが範囲内にないかどうかを確認します

値が範囲内で一致していても一致していない場合は何かを見つけるのに苦労している例を見つけることができます。

これまでのところ私が持っている:

Sub Compare2() 

    Dim test1, cell As Range 
    Dim FoundRange As Range 

    Set test1 = Sheets("Names").Range("A1:A5") 
    For Each cell In test1 

     Set FoundRange = Sheets("Queue & Status").Range("A1:A200").Find(what:=test1, LookIn:=xlFormulas, lookat:=xlWhole) 

     If FoundRange Is Nothing Then 
      MsgBox (cell & " not found")  
     End If 

    Next cell 
End Sub 

しかし、一致していないされていると、彼らはしているときには、すべての値を示しています。

+0

をお試しください:=セル(= cell.valueあるいはどのような:)= TEST1はどうすべきですか? – Susilo

+0

Set FoundRange行のtest1をcellに変更してみます。 Set FoundRange =シート( "Queue&Status")範囲( "A1:A200")検索(what:=セル、LookIn:= xlFormulas、lookat:= xlWhole) テスト済みで正常に動作しているようです。 –

+0

FYI 'Dim test1、cell As Range'は' cell'を 'Range'として宣言し、' test1'を暗黙の 'Variant'として宣言しています。 –

答えて

2

この

Sub Compare2() 

    Dim test1 As Range 
    Dim lookIn As Range 
    Dim c As Range 
    Dim FoundRange As Range 

    Set test1 = Sheets("Names").Range("A1:A5") 
    Set lookIn = Sheets("Queue & Status").Range("A1:A200") 
    For Each c In test1 

     Set FoundRange = lookIn.Find(what:=c.Value, lookIn:=xlFormulas, lookat:=xlWhole) 

     If FoundRange Is Nothing Then 
      MsgBox (c.Value & " not found") 
     End If 

    Next c 
End Sub 
+0

ええ、私もそれに気付きましたが、うまくいったので、私はとにかく投稿しました – nightcrawler23

+0

ありがとうナイトクローラー23、それは完璧に動作します。 – Cr1kk0

0

何を:あなたは本当にVBAでそれを行っ必要です

関連する問題