Excel 在一个范围内复制多行

Excel 在一个范围内复制多行,excel,vba,Excel,Vba,目前,我有一个宏,它在另一个文档中查找并复制偏移单元格(如果存在值)。我已经有下面的代码(只有选择/复制偏移单元的部分),但它只会复制一行。这对于我正在搜索的大多数项目来说都很好。有人知道如何修改下面的代码来复制包含我搜索的值的所有单元格吗 For I = LBound(MyArr) To UBound(MyArr) Set Rng = .Find(What:=MyArr(I), _ After:=.Cells(.Cells.Count), _

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

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
I=LBound(MyArr)到UBound(MyArr)的

Set Rng=.Find(What:=MyArr(I)_
之后:=.Cells(.Cells.Count)_
看:=xlPart_
搜索顺序:=xlByRows_
SearchDirection:=xlNext_
匹配案例:=假)
如果不是,那么Rng什么都不是
FirstAddress=Rng.Address
做
'如果找到“Ron”,则在右侧列中标记单元格
发动机偏移量(0,4)。选择
'Rng.Copy“A”和Rcount
设置Rng=.FindNext(Rng)
非Rng时循环为Nothing,Rng.Address为FirstAddress
选择。复制(Rng)
如果结束
接下来我
以

我建议使用.Find方法的循环

因此,您有一系列数据,即MyArr,想象其50个项目的长度。您希望从0到50查找,直到找到您的项目

假设您在位置8中找到它。现在,您进行另一次搜索,但这次从第9项到第50项,并查看是否找到匹配项。如果你不知道,你就不知道了。如果执行此操作,请重复上述操作,直到数组(范围)中的元素用完或没有更多匹配项为止。这有意义吗