2015-11-25 210 views
0

細胞相比,我需要從範圍src.Range("A1:A" & 10)每個細胞與細胞的範圍src3.Range("A1:A" & 3)比較,並繼續僅src細胞不等於任何src3細胞。如果我手動列出每個比較(作爲評論 - 我最終得到的結果,它可以工作,但會有更多的比較範圍)。但是,當我嘗試循環它時不會。我不能從THEN分開IF。我找不到替代品。循環爲IF-THEN語句

For temprow = 1 To rngSelectionTable.Rows.Count       
    tempselected = rngSelectionTable(temprow, 2).Value      
    Crit = rngSelectionTable(temprow, 5).Value        

    If tempselected = True Then 

    For Each r In src.Range("A1:A" & 10)     

     'If r <> 0 _ 
      And r <> src3.Range("A1") _ 
      And r <> src3.Range("A2") _ 
      And r <> src3.Range("A3") _ 
      Then myFinalResult = r 

     For Each comparisonRange In src3.Range("A1:A" & 3) 'does not work 
      If r <> 0 And r <> comparisonRange 'does not work 
       Next comparisonRange 'does not work 
      Then myFinalResult = r 'does not work 

     'rest of the code below 
      If myFinalResult = Crit Then         
       If CopyRange Is Nothing Then       
        Set CopyRange = r.EntireRow     
          Else 
        Set CopyRange = Union(CopyRange, r.EntireRow) 
       End If 
      End If 
     Next r 
    End If 
    Next temprow 
+0

你能張貼整個過程或函數? –

回答

1

像這樣的東西應該工作:

Sub test() 
    Dim r As Range, rng10 As Range, rng3 As Range 
    Set rng10 = Sheet1.Range("a1:a10") 
    Set rng3 = Sheet2.Range("$a$1:$a$3") 

    For Each r In rng10 
     If Application.WorksheetFunction.CountIf(rng3, r) > 0 Then 
      'proceed here 
     End If 
    Next r 
End Sub 
+0

hm,對我不起作用......我簡化了它,只是爲了一個'r = 1' ......然後Sheet1.Range(「B1」)=「a」',沒有任何反應 – Meursault

+1

nope,我明白了。管理以適應我的目的。謝謝你的幫助! – Meursault