简体   繁体   中英

Copy from one worksheet to another without opening excel using vba

I'm trying to copy cell values from one excel to another using VBA. What I'm trying to do is that by clicking on the script, excel (without getting opened) values should automatically get copied from one worksheet to another. While executing my script I get an error which says Type Mismatch: 'Sheets'. I've read various posts but could not find an answer to this problem. My script looks like this:

ImportData_Click

Sub ImportData_Click()
Dim objExcel2
Set objExcel2 = CreateObject("Excel.Application")

' open the source workbook and select the source sheet
objExcel2.Workbooks.Open "<path>\test1_vbs.xlsx"


' copy the source range
Sheets("Sheet1").Range("A1:B2").Copy

' select current workbook and paste the values
ThisWorkbook.Activate

Sheets("Sheet2").Range("A1:B2").PasteSpecial xlPasteValues

' close the source workbook
Windows("<path>\test1_vbs.xlsx").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

If you are going to tranfer values only between application instances, skip the clipboard and use an array.

Option Explicit

Sub ImportData_Click()
    Dim objExcel2 As Object, arr As Variant

    Set objExcel2 = CreateObject("Excel.Application")
    ' open the source workbook and select the source sheet
    With objExcel2.Workbooks.Open("c:\test\test2_vbs.xlsx")
        ' copy the source range to variant array
        arr = .Worksheets("Sheet1").Range("A1:B2").Value
        ' close the source workbook
        .Close savechanges:=False
    End With

    ' select current workbook and paste the values
    ThisWorkbook.Worksheets("Sheet2").Range("A1").Resize(UBound(arr, 1), UBound(arr, 2)) = arr

    ' close the source application instance
    objExcel2.Quit
    Set objExcel2 = Nothing

    ActiveWorkbook.Save
    ActiveWorkbook.Close

End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM