0

現在、別のドキュメントを調べて、値が存在する場合はオフセット セルをコピーするマクロがあります。以下のコード (オフセット セルを選択/コピーする部分のみ) は既にありますが、コピーされるのは 1 行だけです。これは、私が探しているほとんどのアイテムで問題ありません。以下のコードを変更して、検索した値を含むすべてのセルをコピーする方法を知っている人はいますか?

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 に答える