每天将第1页到第2页的数据范围复制为日志

时间:2017-02-08 02:53:42

标签: excel-vba vba excel

我想将数据从Sheet 1复制到同一工作簿中的Sheet 2。数据集需要从工作表1上的范围C3到C7复制到工作表2上的B3到F3。数据每天作为日志复制到工作表2上。我有一个代码,如果我用Range对象定义一个单元格但不能与多个单元格一起工作。

代码插入按钮。请在下面找到代码。我是新手,如果有人帮助解决错误,我将不胜感激。

Private Sub CommandButton21_Click()

    Dim Data As String
    Worksheets("Sheet1").Select
    Data = Range(Cells(3, 3), Cells(3, 7))
    Worksheets("Sheet2").Select
    Worksheets("Sheet2").Range(Cells(2, 3), Cells(6, 3)).Select

    If Worksheets("Sheet2").Range(Cells(2, 3), Cells(6, 3)).Offset(1, 0)<> "" Then
        Worksheets("Sheet2").Range(Cells(2, 3), Cells(6, 3)).End(xlDown).Select
    End If
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = Data
    Worksheets("Sheet1").Select
    Worksheets("Sheet1").Range(Cells(3, 3), Cells(3, 7)).Select

End Sub

Private Sub Update_Click()

End Sub

1 个答案:

答案 0 :(得分:0)

从&#34; Sheet1&#34;复制范围(&#34; C3:C7&#34;)在&#34; Sheet2&#34;中的范围(&#34; B3:F3&#34;) ,您可以使用以下代码(不使用SelectActiveCell)。

Private Sub CommandButton21_Click()    

    Worksheets("Sheet1").Range("C3:C7").Copy     
    Worksheets("Sheet2").Range("B3").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
                                    SkipBlanks:=False, Transpose:=True

End Sub

注意:这会导致&#34;覆盖&#34;以前的日期数据,很难将其用作日志。

您可以使用以下代码将其粘贴到&#34; Sheet2&#34;中的B列的第一个空行:

Private Sub CommandButton21_Click()

    Dim LastRow As Long    
    Worksheets("Sheet1").Range("C3:C7").Copy            

    With Worksheets("Sheet2")
        LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row + 1 '<-- find first empty row in column B        
        .Range("B" & LastRow).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
                                    SkipBlanks:=False, Transpose:=True        
    End With

End Sub