Excel 在单元格块中查找重复值
是否有任何方法(公式或vba)可以确定一系列单元格是否在同一张表中重复?我会试着用一个例子来更好地解释自己——比如说我有:Excel 在单元格块中查找重复值,excel,Excel,是否有任何方法(公式或vba)可以确定一系列单元格是否在同一张表中重复?我会试着用一个例子来更好地解释自己——比如说我有: A B C 1 x x x 2 y y y 3 z z z 4 5 x x x 6 y y y 7 z z z 在这种情况下,如果我想查找范围A1:C3,它应该告诉我范围A5:C7是第一个范围的副本 不同范围内的数据将具有相同的顺序,因此应查看range1=range2这里是一种VBA方法,只是一组枯燥的旧循环,因此可能不是最佳效率 一些警
A B C
1 x x x
2 y y y
3 z z z
4
5 x x x
6 y y y
7 z z z
在这种情况下,如果我想查找范围A1:C3,它应该告诉我范围A5:C7是第一个范围的副本
不同范围内的数据将具有相同的顺序,因此应查看range1=range2这里是一种VBA方法,只是一组枯燥的旧循环,因此可能不是最佳效率 一些警告
- 一旦找到相同的范围(即使有其他重复),它就会停止,尽管这可能会改变
- 它不寻找子集(即在大范围内复制的范围
- 它基于不包含公式的单元格,但如果不是这样,也可以更改
subx() 尺寸rng作为范围,r作为范围,n作为长度,b作为布尔值 设置rng=Application.InputBox(“选择范围”、“获取范围对象”,类型:=8) 对于ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants.Areas)中的每个r 如果r.Address rng.Address和r.Rows.Count=rng.Rows.Count和r.Columns.Count=rng.Columns.Count,则 对于n=1到r.计数 如果r.单元格(n).值r.单元格(n).值,则 b=正确 退出 如果结束 下一个 如果不是b,那么 MsgBox“单元格”和r.Address&“与所选范围(&rng.Address&”)相同 如果结束 出口接头 如果结束 下一个r 端接头
范围是动态的还是设置的?例如,它总是测试A1:C3是否与A5:C7匹配,如果不匹配,则公式将不起作用。公式需要模式来完成此操作。@ScottCraner范围是动态的,但如果公式比VBA更容易,我可以每次更改范围。我已经开始编写一些VBA代码:
Dim rng作为范围集rng=Application.InputBox(“选择一个范围”、“获取范围对象”,键入:=8)用于rng调试中的每个cel。下一个cel打印cel.Value
您可能有多少个范围?这可能会变得非常复杂。=SUMPRODUCT(--(A1:C3=A5:C7))=行(A1:C3)*列(A1:C3)
@SJR它可以有几个范围。不幸的是,我知道它会变得非常复杂。
Sub x()
Dim rng As Range, r As Range, n As Long, b As Boolean
Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)
For Each r In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants).Areas
If r.Address <> rng.Address And r.Rows.Count = rng.Rows.Count And r.Columns.Count = rng.Columns.Count Then
For n = 1 To r.Count
If r.Cells(n).Value <> rng.Cells(n).Value Then
b = True
Exit For
End If
Next n
If Not b Then
MsgBox "Cells " & r.Address & " are the same as selected range (" & rng.Address & ")"
End If
Exit Sub
End If
Next r
End Sub