我需要Excel VBA的帮助。
我想知道如何比较同一行中的多个单元格,但是在不同的列中。
我需要比较特定细胞E3,G3,I3之类的东西,并找出它是否有重复,并删除先放入的副本。
注意:拖放功能用于填充数据。
我尝试过使用类似的东西
ListView
但我需要比较更多的行和列。
答案 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复制下来。然后,您可以使用“数据验证”向导设置自定义错误消息。
上面的公式假设您只需要检查同一行的值(如您所述)。