0

VBA初心者です。Sheet1 でいくつかのデータを見つけて Sheet2 にコピーしようとしています。Sheet1 からデータを選択すると、既に Sheet2 にあるデータに追加する必要があります。

次のコードを使用してデータを見つけて貼り付けることができますが、追加することはできません。コードで何が間違っていますか?

Sub Copy_To_Another_Sheet_1()

Dim FirstAddress As String
Dim MyArr As Variant
Dim Rng As Range
Dim Rcount As Long
Dim i As Long
Dim NewSh As Worksheet
With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

MyArr = Array("37", "283", "300", "112", "1100", "336", "98")

Set NewSh = Sheets("Sheet2")

With Sheets("Sheet1").Range("B5:B500")

    Rcount = 0

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

        Set Rng = .Find(What:=MyArr(i), _
                        After:=.Cells(.Cells.Count), _
                        LookIn:=xlValues, _
                        LookAt:=xlWhole, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlNext, _
                        MatchCase:=False)

        If Not Rng Is Nothing Then
            FirstAddress = Rng.Address
            Do
                Rcount = Rcount + 1
                Rng.EntireRow.Copy NewSh.Range("A" & Rcount)

                Set Rng = .FindNext(Rng)
            Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress
        End If
    Next i

End With

With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With

End Sub
4

1 に答える 1

1

「追加」とは、マクロを何度も実行するときにデータを追加することを意味すると思います。この状況では、次回実行すると、シート 2 にあるものが上書きされます。Rcount 変数を次のように変更する必要があります。

Rcount = NewSh.Cells(NewSh.Rows.Count,1).End(xlUp).Row+1

Sheet2 の列 A の最初の空のセルを検索します。初めてコードを実行する場合 (実際に行 1 に結果が必要な場合) は、追加の変更が必要になります。Rcount増分行を配置する場所も確認してください。.copy行の後に移動する必要があります

于 2013-03-08T08:38:01.287 に答える