0

列 A で特定の値を検索します。C列からO列までの値を含む行を別のシートにコピーしたい。

Data というラベルの付いたワークシートは、列 C から O までの情報を取得する場所です。

Sales というラベルの付いたワークシートは、データを貼り付けたい場所です。

Sub Test_Copy_Data()
    'Macro to copy sales based on site

    '**********************************************************
    Dim numentries As Integer
    Dim i As Integer
    Dim site As String

    '***********************************************************
    'Define sheet names
    Data = "Data1"
    Sales = "Sales"

    '************************************************************
    'Get number of entries and desired scores
    numentries = Worksheets(Data).UsedRange.Rows.Count

    '*************************************************************

    site = Worksheets(Sales).Range("B1").Value

    '************************************************************

    'Run loop to cycle through all entries (rows) to copy

    For i = 1 To numentries
        If (Worksheets(Data).Cells(i + 2, 1).Value = site) Then
            Worksheets(Data).Range("C:O" & i + 2).Copy _
              Destination:=Worksheets(Sales).Range("A2")     
        End If
    Next i

End Sub
4

1 に答える 1

1

Data1 ワークシートの範囲への参照が正しくありません。アップデート

Worksheets(Data).Range("C:O" & i + 2).Copy Destination:=_
    Worksheets(Sales).Range("A2")

に...

Worksheets(Data).Range("C" & i + 2 & ":O" & i + 2).Copy Destination:=_
    Worksheets(Sales).Range("A2")

そしてそれはうまくいくはずです。ただし、このコードが実行されるたびに、データ シートから見つかった値がセールス シートの同じ場所 (セル A2) に貼り付けられることに注意してください。

(例Worksheets(Sales).Range("A" & i + 1))

于 2013-08-13T01:41:40.800 に答える