2014-05-09 7 views
2

나는 중복 금액으로 VBA 클라이언트를 사용하여 강조 표시하고 표시하려고합니다. 예는 다음과 같습니다중복 금액이 중복 된 중복 클라이언트 강조 표시. in excel

Client Amount 
123  $5 
123  $6 
456  $5 
456  $9 
456  $9 

나의 현재 코드는 다음과 같은 예를 표시 할 것입니다 :

Client Amount Check 
123  $5  Duplicate 
123  $6  OK 
456  $5  Duplicate 
456  $9  Duplicate 
456  $9  Duplicate 

을 그것이 DUP 양이 아니기 때문에 실제로

Client Amount 
123  $5 
456  $5 

이 같은 확인을 표시해야하는 경우 같은 클라이언트에 있습니다.

내 코드는 다음과 같습니다.

'Checks For Duplicates 
k = 2 
Set AccClm = Range("A2:A" & rowz) ' area to check ' 
Set AmtClm = Range("C2:C" & rowz) 
iWarnColor = xlThemeColorAccent2 

Do While ws.Cells(k, 1) <> "" 
Acc = ws.Cells(k, 1) 
Amt = ws.Cells(k, 3) 
    If (WorksheetFunction.CountIf(AccClm, Acc) >= 2) And (WorksheetFunction.CountIf(AmtClm, Amt) >= 2) Then 
       ws.Rows(k).Interior.ColorIndex = iWarnColor 
       ws.Cells(k, 4) = "Duplicate" 
      Else 
       ws.Rows(k).Interior.Pattern = xlNone 
    End If 
    k = k + 1 
Loop 

나는 어떤 생각을해도 만족하지 않을 것입니다.

답변

1

사용 COUNTIFS 대신 COUNTIF

 'Checks For Duplicates 
    k = 2 
    Set AccClm = Range("A2:A" & rowz) ' area to check ' 
    Set AmtClm = Range("C2:C" & rowz) 
    iWarnColor = xlThemeColorAccent2 

    Do While ws.Cells(k, 1) <> "" 
    Acc = ws.Cells(k, 1) 
    Amt = ws.Cells(k, 3) 
     If WorksheetFunction.CountIfs(AccClm, Acc, AmtClm, Amt) >= 2 Then 
        ws.Rows(k).Interior.ColorIndex = iWarnColor 
        ws.Cells(k, 4) = "Duplicate" 
       Else 
        ws.Rows(k).Interior.Pattern = xlNone 
     End If 
     k = k + 1 
    Loop 
+0

빙고의! 고마워요. 내 마음이 울부 짖었 어. 그리고 나는 그것을 볼 수 없었다. – user3271518