gpt4 book ai didi

vba - 在 Excel VBA 中检查两个范围是否相等的最快方法

转载 作者:行者123 更新时间:2023-12-02 09:34:44 25 4
gpt4 key购买 nike

假设您有两组数据,并且行数和列数相同。现在您想要检查一组单元格中的数据是否等于另一组中具有相同相对地址的单元格中的数据。如果一行的所有单元格都是如此,则从两组中删除该行。我可以通过比较每个单元格来非常轻松地进行编码,但这对于大型数据集来说并不好。请参阅下面的两列代码,其中两组数据恰好并排位于同一张工作表中,它们之间的列偏移量为 300。

Dim RngOb As Range
Dim c As Range

Range("A1", "B1").Select
set RngOb = Range(Selection, Selection.End(xlDown))

For Each c In RngOb.Rows
If c.Cells(1,1).Value = c.Offset(0, 300).Cells(1,1).Value Then
If c.Cells(1,2).Value = c.Offset(0, 300).Cells(1,2).Value Then
c.EntireRow.Delete
End If
End If
Next

我的实际数据有超过 100 列,并且每天的列数都不同。我正在寻找一种智能、快速的方法来处理大型数据集。我非常感谢您的回答、反馈和批评。 :D

最佳答案

这是一种比较同构范围中的两行的简单方法............在此示例中,每个范围的第 5 行:

Sub RowCompare()
Dim ary1() As Variant
Dim Range1 As Range, Range2 As Range, rr1 As Range, rr2 As Range
Set Range1 = Range("B9:F20")
Set Range2 = Range("I16:M27")
Set rr1 = Range1.Rows(5)
Set rr2 = Range2.Rows(5)
ary1 = Application.Transpose(Application.Transpose(rr1))
ary2 = Application.Transpose(Application.Transpose(rr2))
st1 = Join(ary1, ",")
st2 = Join(ary2, ",")
If st1 = st2 Then
MsgBox "the same"
Else
MsgBox "different"
End If
End Sub

如果单元格中嵌入了逗号,请在 JOIN 中选择另一个字符

关于vba - 在 Excel VBA 中检查两个范围是否相等的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22270693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com