Vba 获取sheet1中最后填充的列,并将sheet2中的数据复制到sheet1

Vba 获取sheet1中最后填充的列,并将sheet2中的数据复制到sheet1,vba,excel,Vba,Excel,我有两张床单 第1页和第2页 我的数据在表2中。图纸1已经包含第4行之前的数据 我想将表2中的所有数据从第5行复制到第4行后的表1 我尝试了下面的代码。但是每次我运行代码时。它被随机复制到114行,有时复制到第1000行 这是我用来复制的代码 Sub FClookup() Dim LastRow As Long 'get last row LastRow = Worksheets("Sheet1").Cells(Rows.count, 1).End(xlUp).Row

我有两张床单

第1页和第2页

我的数据在表2中。图纸1已经包含第4行之前的数据

我想将表2中的所有数据从第5行复制到第4行后的表1

我尝试了下面的代码。但是每次我运行代码时。它被随机复制到114行,有时复制到第1000行

这是我用来复制的代码

Sub FClookup()
Dim LastRow As Long

    'get last row
    LastRow = Worksheets("Sheet1").Cells(Rows.count, 1).End(xlUp).Row
    Worksheets("Sheet2").Range("A5:W1000").Copy _
    Destination:=Worksheets("Sheet1").Range("A" & LastRow + 1)


End Sub

以下内容应满足您的要求。代码假定Sheet2中的A列始终已填充,并将从Sheet2中的A列到D列的所有数据复制到Sheet1中的下一个空闲行(检查A列)


LastRow的值是多少?也许有些单元格看起来是空的,但有隐藏的内容?@SJR它显示1048576这是电子表格的最后一行,所以这就是你的问题所在。我将清除整个列的内容,然后运行宏。@SJR我也将尝试您的解决方案:)@SJR我完全删除了工作表,并使用了另一个工作表,使用了相同的宏,它工作了:)
Option Explicit

Sub CopyStuff()

    Dim ws1, ws2 As Worksheet

    Set ws1 = Worksheets("Sheet1")
    Set ws2 = Worksheets("Sheet2")

    ws2.Range("A5:D" & ws2.Range("A5").End(xlDown).Row).Copy
    ws1.Range("A" & ws1.Range("A1").End(xlDown).Row + 1).PasteSpecial xlValues

End Sub