【发布时间】:2011-07-21 13:03:44
【问题描述】:
我有两个 Excel 工作表:Sheet1 和 Sheet2。 Sheet2 是主列表,而 Sheet1 是我从系统收到的更新工作表。我需要将 Sheet1 的 Col A 的每个值与 Sheet2 进行比较。如果有匹配项,那么我想从 Sheet1 复制整个匹配行并将该行中的值粘贴到 Sheet2 的相应 ColA 值 (Item#) 行。示例如下:
Sheet1 工作表
ColA ColB
Item# Updated Cost
1234 $30
Sheet2 工作表
ColA ColB
Item# Current Cost
1234 $45
我的文件中的列比此处显示的多,因此有必要将整行与 Sheet2 中的相应行一起复制。我启动了所需的 Excel VBA 代码,但我坚持在 Sheet2 中粘贴相应的值。我的代码非常基本,但还不能正常工作,因此感谢任何与编码相关的帮助。
Sub Macro1()
'
' Macro1 Macro
'
' Copies corresponding item# rows from sheet1 worksheet
' to sheet2 worksheet by comparing item# column
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ColA As String
Dim rng1 As Range
Dim rng2 As Range
Dim RowCounter1 As Integer
Dim RowCounter2 As Integer
ColA = "A"
RowCounter1 = 2
RowCounter2 = 2
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
Do While Not IsEmpty(ws1.Range(ColA & RowCounter1).Value)
Set rng1 = ws1.Range(ColA & RowCounter1)
RowCounter2 = 1
Do While Not IsEmpty(ws2.Range(ColA & RowCounter2).Value)
Set rng2 = ws2.Range(ColA & RowCounter2)
If rng1.Value = rng2.Value Then
Rows(RowCounter1).EntireRow.Copy
RowCounter2 = RowCounter2 - 1
End If
RowCounter2 = RowCounter2 + 1
Loop
RowCounter1 = RowCounter1 + 1
Loop
End Sub
【问题讨论】: