[英]Copy data from one sheet to the last row of another sheet
我正在尝试将数据从一张纸复制到另一张纸的最后一行。
之所以这样做,是因为我想将数据合并到一个已经存在并且包含了数据的工作表中。
到目前为止,以下是我的代码,该代码仅再次复制到另一张纸的A2中。 为此,我应该采取什么方法:
Sub Upload()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim MainPage As Worksheet
Set MainPage = Sheets("Main")
Dim r As Long
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set Wb1 = ActiveWorkbook
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a File", _
filefilter:="Excel File *.xlsx (*.xlsx),")
If FileToOpen = False Then
MsgBox "No File Specified.", vbExclamation, "ERROR"
Exit Sub
Else
Set Wb2 = Workbooks.Open(Filename:=FileToOpen)
With Wb2.Sheets("ALL TICKETS (excpt Open-OnHold)")
srcLastRow = .Range("A:AJ").Find("*", SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row
destLastRow = Wb1.Sheets("ALL TICKETS (excpt Open-OnHold)".Range("A:AJ").Find("*", SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row + 1
Wb1.Sheets("ALL TICKETS (excpt Open-OnHold)").Range("A2:AJ" &
destLastRow).Value = .Range("A2", "AJ" & srcLastRow).Value
End With
Wb2.Close
End If
End Sub
您知道复制的范围,因此您需要知道目标表的最后一行:
dim lr as long
With Sheets("Destination")
lr = .cells(.rows.count,1).end(xlup).row 'assumes column 1 is contiguous
End with
然后,您可以使用源范围(将使用变量SrcRng)并将其粘贴到新工作表的特定单元格中:
SrcRng.Copy Sheets("Destination").Cells(lr+1,1) 'this line does the copy and the paste
复制的范围的其余部分将被填写。
编辑1:
很难在注释中显示代码...
Dim LRSrc as Long, LRDest as Long, SrcRng as Range
With Sheets("Source")
LRSrc = .cells(.rows.count,1).end(xlup).row 'assumes column 1 is contiguous
Set SrcRng = .Range("A1:AJ" & LRSrc)
End with
With Sheets("Destination")
LRDest = .cells(.rows.count,1).end(xlup).row 'assumes column 1 is contiguous
SrcRng.Copy .Cells(LRDest+1,1)
End with
这会为您工作。 如下定义srcLastRow。
srcLastRow =单元格(行数,36)。结束(xlUp)。行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.