如何将数据粘贴到特定的单元格区域?

时间:2014-05-29 16:58:57

标签: excel vba excel-vba

我是vba的新手,需要一些帮助。我有一个名为“存档”的工作表,它将以某种表格格式显示/构建12组数据。我的目标是从同一工作簿中的其他工作表中提取数据,并将其粘贴到与该数据的相应“表”对应的特定范围内。以下是我从名为“Daily DB”的工作表中提取的数据代码,并粘贴到“存档”工作表中。

Sub GetDailyDataByWeek()

Dim cw As Integer    ' current week
Dim lr As Long    'last row of data
Dim i As Long    ' row counter

'Clear exsisting contents
Worksheets("Archive").Range("A5:E11").ClearContents

'Get week number and year of current date
cw = Format(Date, "ww")

With Worksheets("Daily DB")

    ' Find last row of data
    lr = .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    For i = 2 To lr
        If Format(.Cells(i, 1).Value, "ww") = cw Then
            .Range(.Cells(i, 1), .Cells(i, 5)).Copy
            Worksheets("Archive").Range("a" & Rows.Count).End(xlUp).Offset(1,    0).PasteSpecial xlPasteFormulasAndNumberFormats
        End If
    Next i

End With

Application.CutCopyMode = False

End Sub

此代码执行我想要的操作。我需要帮助解决的问题是:

 Worksheets("Archive").Range("a" & Rows.Count).End(xlUp).Offset(1,    0).PasteSpecial xlPasteFormulasAndNumberFormats

当这一行查找最后一行数据时,在我的情况下,这将是第12个表的标题行。但是,我希望这个特定的数据进入第一个表,在标题行开始于“A5”之后,但我不知道如何去做。非常感谢任何和所有的帮助。

1 个答案:

答案 0 :(得分:0)

如果你想将来自另一个单元格或范围的数据复制到同一个工作簿中,我会使用" Value" Range对象的方法,如下所示:

Worksheets("Archive").Range("A" & i).Value = Worksheets("XXX").Range("Z" & j).Value

通过这样做,您将避免执行所有复制和粘贴操作。

如果你不想为每个值指定一个范围,你可以激活第一行的第一个单元格然后"偏移"你的方式,像这样:

Worksheets("Archive").Range("A" & i).Activate
ActiveCell.Value = blah blah blah
ActiveCell.Offset(1, 0).Activate 'If you want to move to the next row (same column)
ActiveCell.Offset(0, 1).Activate 'If you want to move to the next column (Same row)