Код VBA для импорта листов из рабочих книг, содержащихся в определенной папке - PullRequest
0 голосов
/ 16 февраля 2019

Итак, я получаю баланс кафе, в конце каждого дня.Они будут собраны в папке, и я хочу импортировать их в мою основную рабочую книгу и обновлять их ежедневно.Но каждый раз, когда я запускаю макрос, предыдущие данные дублируются.

(https://hizliresim.com/Gm4baV)

Sub GetSheets()
Path = "D:\xx\xx\"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub

Как я могу исключить предыдущие данные, не меняя содержимого папки? Я не очень разбираюсь в VBA, поэтому мне нужны ваши помощники. Спасибоаванс.

Отредактировано:"Если листы с одинаковым именем (листы названы по их уникальному дню / месяцу / году) уже могут быть найдены в моей основной рабочей книге, они не должныt get coppied "- это та часть, которую я не могу реализовать в этом коде выше в основном."

1 Ответ

0 голосов
/ 19 февраля 2019

Попробуйте:

Sub GetSheets()
Path = "D:\xxx\"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
Dim SheetExist As Boolean

For Each Sheet In ActiveWorkbook.Sheets
SheetExist = False

For Each sheetthis In ThisWorkbook.Sheets

If Sheet.Name = sheetthis.Name Then
SheetExist = True
Exit For
End If

Next sheetthis

If SheetExist = False Then
Sheet.Copy After:=ThisWorkbook.Sheets(1)
End If

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

End Sub

Я создаю логическое значение, которое изменяется, если лист уже существует в вашей книге.Если логическое значение не изменяется, этот же лист не существует и копируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...