Скопируйте данные из нескольких листов рабочей книги (имя содержит «SAP») на один лист - PullRequest
0 голосов
/ 09 октября 2018

Я хотел бы объединить данные из рабочих листов, где имя листа содержит «SAP».Я написал некоторый код для этого, но каждый раз, когда он запускается, я получаю Run-time error '438'.Это только начало моего кода, но он не работает: (

Private Sub MergeFiles()
    Dim ws As Worksheet
    Dim xPath As String

    xPath = ActiveWorkbook.Path & "\"
    Filename = Dir(xPath & "*.xlsx")

    Do While Filename <> ""

        Workbooks.Open Filename:=xPath & Filename, ReadOnly:=True
        For Each ws In Workbooks(Filename)
            If LCase(ws.Name) Like "SAP*" Then
                Sheets(ws).Activate
                Range("A2:L85").Select
                Selection.Copy
            End If
        Next ws

        Workbooks(Filename).Close
        Filename = Dir()
    Loop

End Sub

Может кто-нибудь помочь мне решить эту проблему, пожалуйста?

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете заменить свое предложение FOR следующим, и оно должно работать.

Вы хотите получить доступ к рабочим листам внутри рабочей книги, поэтому вам нужно обратиться к рабочим листам.

For Each ws In Workbooks(Filename).Worksheets
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...