请问如何使用VBA完成数据的更新

img

img


如图上,若sheet4里面的序号列的格子内容等于sheet5里面的序号列的某一个格子的内容,例如sheet4序号列里面的161在sheet5里面也出现了,那么就把sheet5这个格子对应的这一行都复制到sheet4对应的这一行,完成sheet4的更新。sheet5里没出现的就不用。更新求解


可以使用以下VBA代码完成数据的更新:
vba
Sub UpdateData()

Dim rowCount4 As Integer, rowCount5 As Integer
Dim colCount4 As Integer, colCount5 As Integer

rowCount4 = Sheets("sheet4").UsedRange.Rows.Count  'sheet4的行数
rowCount5 = Sheets("sheet5").UsedRange.Rows.Count  'sheet5的行数
colCount4 = Sheets("sheet4").UsedRange.Columns.Count 'sheet4的列数
colCount5 = Sheets("sheet5").UsedRange.Columns.Count 'sheet5的列数

For i = 2 To rowCount4        '遍历sheet4的每行
    For j = 1 To colCount5    '遍历sheet5的序号列
        If Sheets("sheet4").Cells(i, 1) = Sheets("sheet5").Cells(j, 1) Then   '如果sheet4的序号等于sheet5的序号 
            For k = 1 To colCount5         
                Sheets("sheet4").Cells(i, k) = Sheets("sheet5").Cells(j, k)   '则把sheet5那一行赋值给sheet4
            Next k
        End If
    Next j
Next i

End Sub
这个代码的逻辑是:
1. 获取sheet4和sheet5的行数和列数
2. 遍历sheet4的每行
3. 对于sheet4的每行,遍历sheet5的序号列,找是否有相同的序号
4. 如果找到相同的序号,则把sheet5那一行的数据复制到sheet4对应的行
5. 重复步骤2-4,完成sheet4的更新