问题
Is it possible to open another workbook from the current one and copy the data on the table columns and paste on the last line of the table in the current workbook? And also delete the source data.
回答1:
Adapt the 5th vars and try this code :
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
来源:https://stackoverflow.com/questions/50693655/how-can-i-open-a-workbook-copy-data-and-add-to-last-line-on-another-workbook