Excel VBA 满足条件时,将粘贴循环从一个 sheet 复制到另一个 sheet

Excel VBA copy paste loop from one sheet to another when condition is met

我是 VBA 的初学者。我已经检查过这个问题是否已经被问过,但没有找到完全适合的东西,而且我也没有正确修改我找到的最接近的代码。

我有一个包含原始销售数据(大约 5,000 件)的文件,位于 sheet1 的 A 列中。在 sheet2 中,我有一个 table 在 A 列中有大约 500 条数据,其中 sheet1 中的重复项目有被淘汰。 B 列中的 500 个项目中的每一个都已重命名。

我想创建一个循环来检查 sheet1 列 A 中的每个单元格的数据是否与 sheet2 列 A 中的数据之一相同。当满足条件时,它会复制粘贴列中的适当单元格B 来自 sheet2 在 sheet1 B 列(即同一行)中的适当单元格中。我需要对500个项目进行操作。

产品分类 1

巧克力
化妆品
巧克力
化妆品
化妆品
化妆品
化妆品
巧克力
巧克力
化妆品
化妆品
果酱 化妆品
化妆品

产品

巧克力 化妆品 果酱

引用列 Sorting2 与:

赵 COS 果酱

听起来您只需要在工作表 1 的 b 列中使用 vlookup 公式

类似于单元格 B2 sheet1 中的内容

=Vlookup(A2,sheet2!'A1:B500,2,0)

然后将其复制粘贴到 b 列下方

查看您的代码,您没有将变量 i 设置为任何值,看起来您需要在 if

之前添加 i=i+1

我还会删除您的 select 和 selection,因为如果您单击鼠标,这可能会导致错误。 你只需要

Sheets("sheet2").Range("A2"). copy

而不是

    Sheets("sheet2").select
Range("A2").select
    Selection.copy

另外,您不应该复制 B2,因为 A2 是您要匹配的值