我正在尝试在vba中创建一个宏来更新第一张纸上的信息。各个记录通过键绑在一起。因此,一个键对应于表1中的记录,也对应于表2中的记录。我通过定义填充数据的行来启动宏(在此阶段它只有一列)。然后它进入for循环并获取整行,并比较两行并更新它们,如果它们不相同的话。我不确定如何编写if语句的行来比较具有相同键的两行(因为它们不是按顺序排列)。任何帮助将不胜感激。我已经发布了我到目前为止编写的代码。
Sub crossUpdate()
Dim rng1 As Range, rng2 As Range, N As Long
Dim rng1Row As Range
Dim rng2Row As Range
Dim i As Integer, j As Integer
Dim Cell As Variant
N = Cells(Rows.Count, "A").End(xlUp).row
Set rng1 = Sheet1.Cells.Range("A2:A" & N)
Set rng2 = Sheet2.Cells.Range("A2:A" & N)
For i = 2 To rng1.Rows.Count
Set rng1Row = rng1.Cells(i, 1).EntireRow
Set rng2Row = rng2.Cells(i, 1).EntireRow
Key = Sheet1.Range("A" & i)
For j = 1 To rng1.Columns.Count
If rng1Row.Cells(i, j).Value <> rng2Row.Cells(i, j).Value Then
Else
End If
Next j
Next i
End Sub
答案 0 :(得分:0)
我回答了类似的问题here。问题是如何比较行。
我的回答是尝试通过存储行的哈希值来快速进行这些比较。对于您的问题,您可以尝试将两个行都转换为字符串,然后只是将它们进行比较。如果它们不相等,只需将其中一行复制到另一行即可。