繁体   English   中英

从一个工作表复制到另一个工作表而无需使用vba打开excel

[英]Copy from one worksheet to another without opening excel using vba

我正在尝试使用VBA将单元格值从一个Excel复制到另一个。 我想做的是,通过单击脚本,excel(无需打开)值应该自动从一个工作表复制到另一个工作表。 在执行脚本时,出现错误,提示类型不匹配:“ Sheets”。 我读过各种文章,但找不到该问题的答案。 我的脚本如下所示:

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

如果仅在应用程序实例之间转移值,请跳过剪贴板并使用数组。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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