Sub PullUniques()
LastRowColumnA = Cells(Rows.Count, 1).End(xlUp).Row
Dim rngCell As Range
For Each rngCell In Range("A1:A" & LastRowColumnA)
If WorksheetFunction.CountIf(Range("B1:B" & LastRowColumnA), rngCell) <> 0 And _
Range(WorksheetFunction.CountIf(Range("B1:B" & LastRowColumnA), rngCell) <> 0).Offset(0, 1).Row <= 0 Then
MsgBox "Please correct Item" & rngCell & " Amount Data"
End If
Next
此代码正在查找B列,以查看A列是否具有任何相同的值。 如果我不使用if语句的第二行,代码工作正常,但当我尝试添加第二个条件列A匹配B而列C的值不大于0时,它不起作用。如何使这段代码有效?
答案 0 :(得分:0)
我想你要检查一下,
1)如果A中的值存在于B列和
2)如果为TRUE,则列C中的值小于或等于0。
如果这就是你需要的,下面的代码应该可行。
Sub PullUniques()
LastRowColumnA = Cells(Rows.Count, 1).End(xlUp).Row
Dim rngCell As Range
For Each rngCell In Range("A1:A" & LastRowColumnA)
If WorksheetFunction.CountIf(Range("B1:B" & LastRowColumnA), rngCell) <> 0 And _
Range("C" & rngCell.Row).Value <= 0 Then
MsgBox "Please correct Item" & rngCell & " Amount Data"
End If
Next
End Sub
但是,如果你的情况是,
1)如果A中的值与B中的值相同
2)如果为TRUE,则列C中的值小于或等于0。
然后你不需要使用countif
Sub PullUniques()
LastRowColumnA = Cells(Rows.Count, 1).End(xlUp).Row
Dim rngCell As Range
For Each rngCell In Range("A1:A" & LastRowColumnA)
Debug.Print Range("B" & rngCell.Row).Value & "/" & Range("C" & rngCell.Row).Value
If Range("B" & rngCell.Row).Value = rngCell And _
Range("C" & rngCell.Row).Value <= 0 Then
MsgBox "Please correct Item" & rngCell & " Amount Data"
End If
Next
End Sub