我在工作表 1(A 列)中有一个项目列表。表 1 中的每个项目都有 5 个附加信息单元格(B 到 F)。工作表 2 有一些,甚至大部分与工作表 1 相同的项目,但不是全部。我正在尝试编写一个从表 2 开始的程序,查看 A 列中的每个项目编号,然后检查表 1 是否有相同的编号。当它找到相同的编号时,它将从表 1 复制 B 到 F 单元格信息,并将其放在表 2 中的项目编号旁边(B 到 F)。
我使用 For Loops 尝试从 Sheet 2 单元格 A2 开始。尝试将变量 cSn 设置为 A2,然后循环通过工作表 1,如果找到 cSn,则将数据从工作表 1 复制到工作表 2。
为了查看程序是否正确运行,我添加了一个 MsgBox 来指示它何时找到了一个。
该程序似乎运行,但不会复制数据并留下它。它似乎复制了数据,然后将其擦除,然后将工作表 1 的最后一行的数据粘贴到工作表 2 的每一行。我已经在这个网站和其他网站上搜索了正确的复制/粘贴语法,但找不到它。我正在使用 MS Visual Basic 7.1。请帮忙!这是我到目前为止...
Sub CopyItemInfo()
Dim cSn As String
Sheets(1).Select
FinalRow1 = Cells(Rows.Count, 1).End(xlUp).Row
Sheets(2).Select
FinalRow2 = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To FinalRow2
cSn = Sheets(2).Range("A" & x)
For y = 2 To FinalRow1
If Sheets(1).Range("A" & y) = cSn Then MsgBox "Found One " & cSn
Worksheets(1).Range("B" & y).Copy Destination:=Worksheets(2).Range("B" & x)
Worksheets(1).Range("C" & y).Copy Destination:=Worksheets(2).Range("C" & x)
Worksheets(1).Range("D" & y).Copy Destination:=Worksheets(2).Range("D" & x)
Worksheets(1).Range("E" & y).Copy Destination:=Worksheets(2).Range("E" & x)
Worksheets(1).Range("F" & y).Copy Destination:=Worksheets(2).Range("F" & x)
Application.ScreenUpdating = True
Next y
Next x
Application.ScreenUpdating = True
End Sub