0

我在 A 列中搜索特定值。我想将包含值的行从 C 列复制到 O 列到另一张表。

标有数据的工作表是我从 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 回答