[英]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. 我正在尝试使用VBA将单元格值从一个Excel复制到另一个。 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.
我想做的是,通过单击脚本,excel(无需打开)值应该自动从一个工作表复制到另一个工作表。 While executing my script I get an error which says Type Mismatch: 'Sheets'.
在执行脚本时,出现错误,提示类型不匹配:“ 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.