如何指定特定行和特定列的范围?

时间:2013-08-12 19:17:58

标签: excel vba for-loop range

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

标有数据的工作表是我将信息从C列提取到O的地方。

标有“销售”的工作表是我希望粘贴数据的位置。

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

1 个答案:

答案 0 :(得分:0)

您对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)