复制范围内的多个行

时间:2013-04-01 13:58:54

标签: excel excel-vba vba

目前我有一个在另一个文档中查找的宏,如果存在值,则复制一个偏移单元格。我已经有了下面的代码(只有选择/复制偏移单元的部分),但它只会复制一行。这对我正在寻找的大多数物品都很好。有谁知道如何修改下面的代码来复制包含我搜索值的所有单元格?

For I = LBound(MyArr) To UBound(MyArr)

Set Rng = .Find(What:=MyArr(I), _
                        After:=.Cells(.Cells.Count), _
                        LookAt:=xlPart, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlNext, _
                        MatchCase:=False)

If Not Rng Is Nothing Then
            FirstAddress = Rng.Address
            Do
                'mark the cell in the column to the right if "Ron" is found
                Rng.Offset(0, 4).Select
                'Rng.Copy "A" & Rcount
                Set Rng = .FindNext(Rng)
            Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress
            Selection.Copy (Rng)
        End If
    Next I
End With

1 个答案:

答案 0 :(得分:0)

我建议的是.Find方法的循环。

所以你有一系列数据,即MyArr想象它的50个项目。你希望从0到50看起来,直到找到你的物品。

让我们说你在位置8找到它。现在你做了另一次搜索,但这次是从第9项到第50项,看看你是否找到了匹配。如果你不知道没有更多。如果你这样做,你重复上面的内容,直到你的阵列中的元素用完(范围)或你没有更多的匹配。这有意义吗?