Импорт данных Sheet1 из нескольких рабочих книг из определенной папки в одну рабочую книгу с использованием VBA или макросов - PullRequest
0 голосов
/ 24 июня 2019

Извлечение данных листа 1 из нескольких рабочих книг в одну рабочую книгу с использованием VBA или макросов

Option Explicit
Sub MergeExcels()

    Dim Path As String, FName As String
    Dim wb As Workbook
    Dim ws As Worksheet

    Path = ""
    FName = Dir(Path & "*.xlsx")
    With ThisWorkbook
        Do While FName <> ""
            Set wb = Workbooks.Open(Path & FName, ReadOnly:=True)
            For Each ws In wb.Worksheets
                ws.Copy After:=.Sheets(.Sheets.Count)
            Next ws
            wb.Close SaveChanges:=False
            FName = Dir()
        Loop
    End With

End Sub

Выше кода Извлечение всех листов в рабочей книге, но мне нужны только данные листа 1

Ответы [ 3 ]

0 голосов
/ 24 июня 2019
Option Explicit
Sub MergeExcels()
    Dim Path As String, FName As String
    Dim wb As Workbook
    Dim ws As Worksheet

    Path = "D:\BILL'S\Thankam\2019\June\Bills"
    FName = Dir(Path & "*.xlsx")
    With ThisWorkbook
        Do While FName <> ""
            Set wb = Workbooks.Open(Path & FName, ReadOnly:=True)
            wb.Worksheets("Sheet1").Copy After:=.Sheets(.Sheets.Count)
            wb.Close SaveChanges:=False
            FName = Dir()
        Loop
    End With
End Sub
0 голосов
/ 26 июня 2019

Параметр Явный Sub MergeExcels ()

Dim Path As String, FName As String
Dim wb As Workbook
Dim ws As Worksheet

Path = "D:\BILL'S\Thankam\2019\June\Bills"
FName = Dir(Path & "*.xlsx")
With ThisWorkbook
    Do While FName <> ""
        Set wb = Workbooks.Open(Path & FName, ReadOnly:=True)
        wb.Worksheets(1).Copy After:=.Sheets(.Sheets.Count)
        wb.Close SaveChanges:=False
        FName = Dir()
    Loop
    End With

Конец Sub

0 голосов
/ 24 июня 2019

Изменение:

For Each ws In wb.Worksheets
    ws.Copy After:=.Sheets(.Sheets.Count)
Next ws

Кому:

wb.Worksheets("Sheet1").Copy After:=.Sheets(.Sheets.Count)

Или, если вы имели в виду первый лист вместо листа с именем Sheet1:

wb.Worksheets(1).Copy After:=.Sheets(.Sheets.Count)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...