Excel VBA:在一个工作表中查找详细信息,然后复制(附加)到另一个工作表

时间:2014-07-21 10:48:34

标签: excel vba excel-vba

我非常感谢您帮助构建一些宏逻辑。我过去一直在修改录制的宏,但我不熟悉VBA从头开始构建一些东西。我也在这里查看过很多例子(令人难以置信!),但没有找到足够接近我需要做的事情...... 我知道它可能只需要几行代码 - 这使得它更令人沮丧。有人可以让我走上正轨吗?

我有一张有两张纸的单一工作簿。 Sheet1包含一个长列表(约25k行,但可变)的产品详细信息。列A具有产品ID,然后列B到G包含每个产品的特定详细信息。 Sheet2类似,同样在A列中有产品ID,在B到E列中有(不同的)属性.Pheet2要小得多,大约100行(也是可变的)。

我需要做的是遍历Sheet2中的产品(行),在Sheet1中找到相应的产品ID,然后将Sheet1(B到G)中的产品属性复制/粘贴到Sheet2(右侧)现有属性,所以从我的例子中的F列开始) - 有效地合并Sheet2中的所有产品属性。<​​/ p>

如果你们其中一个wizzards可以提供骨架代码,我将非常感激.......

1 个答案:

答案 0 :(得分:0)

从两张纸中设置两个范围,循环浏览它们并在产品ID中找到匹配项,然后只将第一张纸中的值复制到第二张纸中。同时更换范围以符合您的条件。

Sub search()
Dim cell As Range, rng As Range, rng2 As Range, cell1 As Range, n As Integer, m As  Integer
Set rng = Sheet1.Range("A2:A9")
Set rng2 = Sheet2.Range("A2:A3")

n = 1
m = 1
For Each cell In rng
    n = n + 1
For Each cell1 In rng2
    m = m + 1
        If cell.Value = cell1.Value Then
            Sheets("Sheet2").Range("F" & m & ":J" & m).Value = Sheets("Sheet1").Range("B" & n & ":F" & n).Value
        End If
    Next cell1
    m = 1
Next cell
End Sub