如何在范围函数上使用LastRow?

时间:2017-12-12 11:56:50

标签: excel vba excel-vba

所以我想将工作表1-工作簿A中的某些单元格范围的值复制到工作表1-工作簿B.

我想复制源工作表中的所有内容:更具体地说,是每个具有值的单元格。

在目标工作表上,为源工作表上的值指定了单元格。

这是我的代码到目前为止(这很糟糕,但我是VBA的菜鸟!):

Sub CopyRangeofCells()
Dim x As Workbook
Dim y As Workbook



Set x = Workbooks.Open("C:\test\template.xlsx")
Set y = Workbooks.Open("C:\test\finalfile.xlsx")


x.Sheets("RDBMergeSheet").Range("A1").Copy


y.Sheets("CW Fast").Range("A1").PasteSpecial

'Close x:
x.Close

End Sub

在我的范围内,我想做一些像Range(“A1:LastRow”)或类似的东西。我该怎么做?我可以创建一个lastrow变量然后做(“A1:mylastrowvariable”)??

希望你能帮忙! VBA让我很困惑,整天给我Java! :P

2 个答案:

答案 0 :(得分:1)

让我们一步一步来做:

Sub CopyRangeofCells()

Dim x As Workbook
Dim y As Workbook
Dim LastRow As Long

Set x = Workbooks.Open("C:\test\template.xlsx")
Set y = Workbooks.Open("C:\test\finalfile.xlsx")

With x.Sheets("RDBMergeSheet")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' get last row with data in column "A"

    .Range("A1:A" & LastRow).Copy
End With

y.Sheets("CW Fast").Range("A1").PasteSpecial xlPasteValues

'Close x:
x.Close

End Sub

答案 1 :(得分:0)

这样的事情:

Sub CopyRangeofCells()
Dim x As Workbook
Dim y As Workbook
Dim LastRow as Long
Dim LastRowToCopy as Long

Set x = Workbooks.Open("C:\test\template.xlsx")
Set y = Workbooks.Open("C:\test\finalfile.xlsx")

LastRowToCopy = x.Sheets("RDBMergeSheet").Cells(x.Sheets("RDBMergeSheet").Rows.Count, "A").End(xlUp).Row
x.Sheets("RDBMergeSheet").Range("A1:A" & LastRowToCopy).Copy
'copy from A1 to lastrow
LastRow = y.Sheets("CW Fast").Cells(y.Sheets("CW Fast").Rows.Count, "A").End(xlUp).Row + 1 'find the last row 
y.Sheets("CW Fast").Range("A" & LastRow).PasteSpecial xlPasteValues
'paste on the lastrow of destination + 1 (so next empty row)
x.Close
End Sub