Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Copy data from another Workbook through VBA

Tags:

excel

vba

Guys here's what I want to do and I have a little trouble doing it. I have 1 Workbook where I want to collect data from different files doing something like this.

Do While THAT_DIFFERENT_FILE_SOMEWHERE_ON_MY_HDD.Cells(Rand, 1).Value <> "" And Rand < 65536
        then 'I will search if the last row in my main worksheet is in this file... 
End Loop           

If it is I'll quit the While Loop, if it's not I'll copy everything. Actually this won't work as I want but I won't have trouble finding the right algorithm.

My problem is that I don't know how to access different workbooks.

like image 416
Andrei Ion Avatar asked Sep 13 '11 12:09

Andrei Ion


People also ask

How do you copy a workbook to another workbook in Excel VBA?

Open both the workbook that contains the macro you want to copy, and the workbook where you want to copy it. On the Developer tab, click Visual Basic to open the Visual Basic Editor. , or press CTRL+R . In the Project Explorer pane, drag the module containing the macro you want to copy to the destination workbook.

How do you copy a range of cells from one workbook to another in Excel VBA?

To copy a cell or a range of cells to another worksheet you need to use the VBA's “Copy” method. In this method, you need to define the range or the cell using the range object that you wish to copy and then define another worksheet along with the range where you want to paste it.

How do I copy and paste data from one workbook to another?

Copy a sheet to another workbookOpen the workbook that you want to copy the sheet to. On the Window menu, click the workbook that contains the sheet that you want to copy. Click the sheet that you want to copy. On the Edit menu, click Sheet > Move or Copy Sheet.

Can an Excel macro pull data from another workbook?

Notes. This macro allows you to get data from another workbook, or put data into it, or do anything with that workbook. The code is a template that allows you to simply access another Excel file.


1 Answers

The best (and easiest) way to copy data from a workbook to another is to use the object model of Excel.

Option Explicit
Sub test()
    Dim wb As Workbook, wb2 As Workbook
    Dim ws As Worksheet
    Dim vFile As Variant

    'Set source workbook
    Set wb = ActiveWorkbook
    'Open the target workbook
    vFile = Application.GetOpenFilename("Excel-files,*.xls", _
        1, "Select One File To Open", , False)
    'if the user didn't select a file, exit sub
    If TypeName(vFile) = "Boolean" Then Exit Sub
    Workbooks.Open vFile
    'Set targetworkbook
    Set wb2 = ActiveWorkbook

    'For instance, copy data from a range in the first workbook to another range in the other workbook
    wb2.Worksheets("Sheet2").Range("C3:D4").Value = wb.Worksheets("Sheet1").Range("A1:B2").Value
End Sub
like image 100
JMax Avatar answered Oct 06 '22 01:10

JMax