Excel将多个单元格与vba进行比较

时间:2016-08-03 05:07:59

标签: excel vba excel-vba

我需要Excel VBA的帮助。

我想知道如何比较同一行中的多个单元格,但是在不同的列中。

我需要比较特定细胞E3,G3,I3之类的东西,并找出它是否有重复,并删除先放入的副本。

注意:拖放功能用于填充数据。

Image of Spreadsheet

我尝试过使用类似的东西

ListView

但我需要比较更多的行和列。

2 个答案:

答案 0 :(得分:3)

首先要做的事情。

Dim R1, R2, R3 As Range 

您可以在VB.Net中执行此操作,并且所有三个都将声明为Range但在VBA中,您必须将它们显式声明为Range,否则前两个将被声明为{ {1}}

Variant

要比较多个行和列,您可以使用循环。例如

Dim R1 As Range, R2 As Range, R3 As Range 

也代替 Drag&amp;删除,我建议使用数据验证列表,这样您就不必使用With Sheet1 '<~~ Change this to the relevant sheet For i = 3 To 8 '<~~ You actual row numbers If .Range("E" & i).Value = .Range("G" & i).Value Or _ .Range("E" & i).Value = .Range("I" & i).Value Then '~~> do something End If Next i End With 。您只需清除单元格的内容即可。

答案 1 :(得分:0)

这里不需要VBA。使用以下公式为单元格E3设置自定义数据验证规则:

=OR(ISBLANK(E3),COUNTIF($E3:$I3,E3)=1)

然后将单元格复制到G3和I3,并根据需要将行3复制下来。然后,您可以使用“数据验证”向导设置自定义错误消息。

上面的公式假设您只需要检查同一行的值(如您所述)。