2015-04-28 454 views
-1

我是VBA新手。我正在处理一个需要从另一个位于不同文件夹中的文件复制数据的文件。如何使用VBA将数据从一个excel文件复制到另一个文件夹中的另一个文件?

Folder 1 --> Main File---> DashboardFolder 2 --> Calculations---> Master File

现在宏被从“仪表板”工作表执行,数据将被从“主文件”中复制和“仪表盘”到被粘贴。

我尝试了几个代码,但他们没有帮助。

请帮我一把。

+2

[如何问一个很好的问题(http://stackoverflow.com/help/how-to-ask )。发布(编辑你的OP,添加到最后)你已经尝试了什么,并指出它到底在哪,失败了。 – FreeMan

回答

0

这是我使用的通用拷贝值宏,希望能够让你走上正确的道路。

Sub TransferData() 
'transfer stuff from workbook 1 to workbook 2 

    Dim strPath1 As String 
    Dim strPath2 As String 
    Dim wbkWorkbook1 As Workbook 
    Dim wbkWorkbook2 As Workbook 

    'define paths and filenames 
    strPath1 = "C:\take from this.xlsx" 
    strPath2 = "C:\put in this.xlsx" 

    'open files 
    Set wbkWorkbook1 = Workbooks.Open(strPath1) 
    Set wbkWorkbook2 = Workbooks.Open(strPath2) 

    'copy the values across 
    wbkWorkbook2.Worksheets("Sheet1").Range("A1:B3").Value = _ 
     wbkWorkbook1.Worksheets("Sheet1").Range("A1:B3").Value 

    'close the two workbooks 
    wbkWorkbook1.Close (False) 
    wbkWorkbook2.Close (True) 

End Sub 

编辑

由于要设置工作簿1作为运行VBA工作簿,在上面你会得到错误,因为工作簿1确实已经打开。

尝试下面的代码从“工作簿”传输数据值工作簿2:

Sub TransferDataV2() 
'transfer stuff from this workbook to workbook 2 

    Dim strPath2 As String 
    Dim wbkWorkbook1 As Workbook 
    Dim wbkWorkbook2 As Workbook 

    'define paths and filenames 
    strPath2 = "C:\put in this.xlsx" 

    'open files 
    Set wbkWorkbook1 = ThisWorkbook '### changed this 
    Set wbkWorkbook2 = Workbooks.Open(strPath2) 

    'copy the values across 
    '### change the sheet and range to what you need 
    wbkWorkbook2.Worksheets("Sheet2").Range("A1:B3").Value = _ 
     wbkWorkbook1.Worksheets("Sheet1").Range("A1:B3").Value 

    'close the workbook 
    wbkWorkbook2.Close (True) 

End Sub 
+0

但是当我执行代码时,它说workbook1已经打开。我正在执行Workbook1中的代码。我无法再打开它的VBA代码 – user3459157

+0

尝试编辑... –

相关问题