简体   繁体   English

使用VBA将数据从一个Excel工作簿复制到另一个

[英]Copying data from one excel workbook to another using vba

I have a workbook which I am working with. 我有一个正在使用的工作簿。 I need to import data from another workbook. 我需要从另一个工作簿导入数据。 The first workbook is called MyBook.xls and second one is called protfolioData.xls. 第一个工作簿称为MyBook.xls,第二个工作簿称为protfolioData.xls。 The path to protfolio data is in the cell D12. 组合数据的路径在单元格D12中。 How can I create a vbscript that takes the path form D12 and copies data in cells A4:D26 from protfolio data and create a newSheet in MyBook.xls. 如何创建一个采用路径形式D12的vbscript,并从组合数据中复制单元格A4:D26中的数据,并在MyBook.xls中创建一个newSheet。 I am currently trying the following, it throws an error ambigous name when macro is run from MyBook.xls. 我目前正在尝试以下操作,当从MyBook.xls运行宏时,它将引发错误的名称歧义。

    ext_file = Workbooks(mainFile).Worksheets("config").Range("D12").Value
    Workbooks(ext_file).Sheets("Sheet1").Rows("4:26").Copy _
    Workbooks(mainFile).Sheets("Sheet2").Rows("1:22")

Maybe Try the following code : 也许尝试以下代码:

    Sub test()

        'Get the Path
        ext_file = ThisWorkbook.Sheets("config").Range("D12").Value

        'Get the workbook name from the path
        GetFileName = Right(ext_file, Len(ext_file) - InStrRev(ext_file, "\"))

        'open and activate the workbook
        Workbooks.Open Filename:=ext_file
        Workbooks(GetFileName).Activate

        'Add new sheet to thisworkbook ( MyBook.xls )
        With ThisWorkbook
            Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
        End With

        'Copy rows 4 to 26 from protfolioData.xls and paste in rows 1 to 23 in ( MyBook.xls )
        Workbooks(GetFileName).Sheets("Sheet1").Rows("4:26").Copy _
        Destination:=ws.Rows("1:23")

        'close protfolioData.xls
        Workbooks(GetFileName).Close savechanges:=False


    End Sub

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

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