0

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

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
4

1 回答 1

0

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

所以你有一系列数据,即 MyArr 想象它的 50 个项目长。您想从 0 到 50 查找,直到找到您的项目。

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

于 2013-04-01T15:36:48.853 回答