Importing Data from Text, CSV, or Other Workbooks in Excel VBA


Excel VBA provides powerful tools to automate the process of importing data from external files like text files, CSV files, or other workbooks. In this tutorial, we will cover methods and real-time examples to handle such tasks efficiently.

1. Importing Data from a Text File

This example demonstrates how to import data from a text file into an Excel sheet.

Step 1: Prepare the Text File

Create a text file (e.g., data.txt) with the following content:

    Name, Age, City
    John, 25, New York
    Alice, 30, Los Angeles
    Bob, 35, Chicago
        

Step 2: VBA Code to Import the Text File

    Sub ImportTextFile()
        Dim filePath As String
        Dim ws As Worksheet
        Dim fileNum As Integer
        Dim lineData As String
        Dim rowNum As Integer

        ' Specify the file path
        filePath = "C:\Path\To\data.txt"

        ' Open the file
        fileNum = FreeFile
        Open filePath For Input As #fileNum

        ' Set the worksheet
        Set ws = ThisWorkbook.Sheets(1)
        rowNum = 1

        ' Read each line from the file
        Do Until EOF(fileNum)
            Line Input #fileNum, lineData
            ws.Cells(rowNum, 1).Value = lineData
            rowNum = rowNum + 1
        Loop

        ' Close the file
        Close #fileNum

        MsgBox "Data imported successfully!"
    End Sub
        

Step 3: Run the Macro

  1. Update the filePath variable with the actual path to your text file.
  2. Run the macro to import the data into the first sheet.

2. Importing Data from a CSV File

CSV files are commonly used to store tabular data. Let’s import a CSV file into an Excel sheet.

Step 1: Prepare the CSV File

Create a CSV file (e.g., data.csv) with the following content:

    Name,Age,City
    John,25,New York
    Alice,30,Los Angeles
    Bob,35,Chicago
        

Step 2: VBA Code to Import the CSV File

    Sub ImportCSVFile()
        Dim filePath As String
        Dim ws As Worksheet

        ' Specify the file path
        filePath = "C:\Path\To\data.csv"

        ' Set the worksheet
        Set ws = ThisWorkbook.Sheets(1)

        ' Import the CSV file
        With ws.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=ws.Range("A1"))
            .TextFileParseType = xlDelimited
            .TextFileCommaDelimiter = True
            .Refresh
        End With

        MsgBox "CSV data imported successfully!"
    End Sub
        

Step 3: Run the Macro

  1. Update the filePath variable with the actual path to your CSV file.
  2. Run the macro to import the data into the first sheet.

3. Importing Data from Another Workbook

This example shows how to import data from a specific range in another Excel workbook.

Step 1: Prepare the Source Workbook

Create an Excel file (e.g., source.xlsx) with data in Sheet1:

        A       B       C
    1   Name    Age     City
    2   John    25      New York
    3   Alice   30      Los Angeles
    4   Bob     35      Chicago
        

Step 2: VBA Code to Import Data

    Sub ImportDataFromWorkbook()
        Dim sourcePath As String
        Dim sourceWorkbook As Workbook
        Dim sourceRange As Range
        Dim targetSheet As Worksheet

        ' Specify the source workbook path
        sourcePath = "C:\Path\To\source.xlsx"

        ' Open the source workbook
        Set sourceWorkbook = Workbooks.Open(sourcePath)

        ' Set the range to copy
        Set sourceRange = sourceWorkbook.Sheets(1).Range("A1:C4")

        ' Set the target sheet
        Set targetSheet = ThisWorkbook.Sheets(1)

        ' Copy the data
        sourceRange.Copy
        targetSheet.Range("A1").PasteSpecial Paste:=xlPasteValues

        ' Close the source workbook
        sourceWorkbook.Close SaveChanges:=False

        MsgBox "Data imported successfully!"
    End Sub
        

Step 3: Run the Macro

  1. Update the sourcePath variable with the actual path to your source workbook.
  2. Run the macro to copy the data to the first sheet of the current workbook.

4. Best Practices for Importing Data

  • Validate the file path and format before importing data.
  • Use error-handling routines to manage issues like file not found or incorrect data formats.
  • Clean and process the data after import for consistency and usability.

5. Conclusion

Importing data from external sources is a common task in Excel automation. By practicing these examples, you can efficiently handle text files, CSVs, and other workbooks in your VBA projects.





Advertisement