Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
在不使用vba打开excel的情况下从一个工作表复制到另一个工作表_Vba_Excel - Fatal编程技术网

在不使用vba打开excel的情况下从一个工作表复制到另一个工作表

在不使用vba打开excel的情况下从一个工作表复制到另一个工作表,vba,excel,Vba,Excel,我正在尝试使用VBA将单元格值从一个excel复制到另一个excel。我试图做的是,通过单击脚本,excel(不打开)值应该自动从一个工作表复制到另一个工作表。在执行脚本时,我得到一个错误,它说类型不匹配:“Sheets”。我读过很多帖子,但都找不到这个问题的答案。我的脚本如下所示: ImportData_Click Sub ImportData_Click() Dim objExcel2 Set objExcel2 = CreateObject("Excel.Application") '

我正在尝试使用VBA将单元格值从一个excel复制到另一个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
ImportData\u单击
子导入数据_单击()
Dim objExcel2
设置objExcel2=CreateObject(“Excel.Application”)
'打开源工作簿并选择源工作表
objExcel2.Workbooks.Open“\test1_vbs.xlsx”
'复制源范围
图纸(“图纸1”)。范围(“A1:B2”)。副本
'选择当前工作簿并粘贴值
此工作簿。激活
图纸(“图纸2”).范围(“A1:B2”).粘贴特殊XLPaste值
'关闭源工作簿
Windows(“\test1\u vbs.xlsx”)。激活
活动工作簿。保存
活动工作簿。关闭
端接头

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

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

我尝试关闭所有excel应用程序,然后运行脚本。它仍然给我类型不匹配:“Sheets”错误。我不明白为什么它给我类型不匹配的错误!