Excel VBA如果rngcell =和下一个单元格=则此单元格=和下一个单元格=

时间:2019-04-23 16:24:56

标签: excel vba

我想比较两个范围的单元格,第一个目标是查看是否存在任何差异,即此单元格是否未出现在该范围内。第二,如果确实出现该单元格,则下一个单元格获得此值。

当前,我已经能够输出第一个范围中未出现在第二个中的任何单元格:

For Each rngCell In Range("F7:F500")
    If WorksheetFunction.CountIf(Range("H7:H500"), rngCell) = 0 Then
        Range("O" & Rows.Count).End(xlUp).Offset(1) = rngCell
    End If
Next

尽管到目前为止,我已经尝试了以下方法,但是我对如何接近第二部分非常迷茫:

For Each rngCell In Range("B6:B500")
    If WorksheetFunction.CountIf(Range("H7:H500"), rngCell) = 0 Then
    Set r2 = Range("E7:E500")
    Else If (Range("H7:H500")) and WorksheetFunction.CountIf(r2("vault")) Then
    Range("O" & Rows.Count).End(xlUp).Offset(1) = rngCell

从本质上讲,我正在寻找一个输出,该输出包含所有位于第一个范围但不包含第二个范围的单元格,以及所有位于第一个范围和第二个范围但下一个单元格的单元格包含特定值的输出。

1 个答案:

答案 0 :(得分:0)

这是可以尝试的东西...

我希望Range / xlUp / Offset(1)不断添加到列表的底部。

(需要在Columns(“ O:O”)。ClearContents之前)

如果我错了,请纠正我。

让我们阐明第二个目标-   所有在第一个范围和第二个范围内的单元格,但是下一个单元格包含特定值。

  If  rngCell("B6:B500") IS in Range("H7:H500") 
  AND rngCell("B6:B500") IS in Range("E7:E500") MATCH (not CountIf) to get the row number
  AND if MatchedRowNum > 0 then
  AND "vault"            IS in Range("E7:E500").Offset(MatchedRowNum + 1)