Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何打开工作簿、复制数据并添加到另一工作簿的最后一行?_Excel_Vba_Excel 2010 - Fatal编程技术网

Excel 如何打开工作簿、复制数据并添加到另一工作簿的最后一行?

Excel 如何打开工作簿、复制数据并添加到另一工作簿的最后一行?,excel,vba,excel-2010,Excel,Vba,Excel 2010,是否可以从当前工作簿中打开另一个工作簿,复制表列上的数据并粘贴到当前工作簿中表的最后一行?并删除源数据。调整第5个变量并尝试以下代码: Option Explicit Sub test() Application.DisplayAlerts = False Dim wb As Workbook Set wb = ThisWorkbook '******************************************* 'Adapt this vars Dim path_wbToOp

是否可以从当前工作簿中打开另一个工作簿,复制表列上的数据并粘贴到当前工作簿中表的最后一行?并删除源数据。

调整第5个变量并尝试以下代码:

Option Explicit
Sub test()

Application.DisplayAlerts = False
Dim wb As Workbook
Set wb = ThisWorkbook

'*******************************************
'Adapt this vars

Dim path_wbToOpen As String
Dim myRange As String
Dim sheet_opened As String
Dim ws_final As Worksheet
Dim lastRow As Integer

path_wbToOpen = "C:\test\test.xlsx" 'path of workbook where is the data
myRange = "A1:D1" 'Range to cpy
sheet_opened = "sheet_opened" 'name in opened WB where is sheet data
Set ws_final = wb.Sheets("sh_test") 'Sheet in current WB to paste data
lastRow = ws_final.Range("A" & Rows.Count).End(xlUp).Row + 1 ' set the last row (adapt column to check last row)


'*******************************************

'open another workbook from current one
Dim wbToOpen As Workbook
Set wbToOpen = Workbooks.Open(path_wbToOpen)

'Copy Data from opened WB
wbToOpen.Sheets(sheet_opened).Range(myRange).Copy 'Copy the data

'current WB
ws_final.Range("a" & lastRow).PasteSpecial ' past to the last row

'Clear Data and close WB
wbToOpen.Sheets(sheet_opened).Range(myRange).Clear 'Clear Data
wbToOpen.Close 'close WB

Application.DisplayAlerts = True

End Sub