我是VBA的初学者。我已经检查过问题是否已经被问到但是没有找到完全合适的东西,而且我也没能正确修改我找到的最接近的代码。
我有一个原始销售数据(大约5,000项)的文件位于sheet1列A中。在sheet2中,我在A列中有一个包含大约500个数据的表,其中已删除了sheet1中的重复项。 500个项目中的每一个都在B列中重命名。
如果数据与sheet2列A中的一个数据相同,我想创建一个循环来检查sheet1列A中的每个单元格。当满足条件时,它会复制粘贴B列中的适当单元格sheet1列中的适当单元格中的sheet2(即同一行)。我需要对500件物品进行操作。
产品分类1
巧克力
COSME
巧克力
COSME
COSME
COSME
COSME
巧克力
巧克力
COSME
COSME
果酱
COSME
COSME
产品
巧克力 COSME 果酱
其中列Sorting2与:
CHO COS JAM
到目前为止编写的代码
Sub sorting()
Dim Cell As Range
Dim i As Integer
For Each Cell In Sheet1.Range("A2:A10000)
If Cell.Value = Sheet2.Range("A2") Then
Sheets("Sheet2").Select
Range("A2").Select
Selection.copy
Sheets("Sheet1").Select
Cell(i,2).Select
Cell.PasteSpecial
End If
Next Cell
End Sub
答案 0 :(得分:0)
这听起来像你需要在sheet1列b中使用vlookup公式
类似于单元格B2 sheet1
=Vlookup(A2,sheet2!'A1:B500,2,0)
然后将其一直复制粘贴到b列
查看代码,您不能将变量i设置为任何内容,看起来您需要在if之前添加i=i+1
我还会删除您的选择和选择,因为如果您单击鼠标,这可能会导致错误。 你只需要
Sheets("sheet2").Range("A2"). copy
而不是
Sheets("sheet2").select
Range("A2").select
Selection.copy
也不应该复制B2,因为A2是您匹配的值