Выборка данных из нескольких листов в отдельный файл - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, прошу помочь со следующим макросом: есть довольно большая база данных о предприятиях, которая расположена на нескольких листах (допустим л1, л2, л3), каждый месяц нужно делать выборку по каждому предприятию в отдельный файл так, чтобы при наличии данных об этом предприятии на л1 - в новом файле был лист л1 с этой выборкой и так далее. У меня получается только скопировать целый лист в новый файл, а выборку по условию (то есть по конкретному предприятию) сделать не получается. Прошу помочь. Тестовую базу данных прикрепляю (на ней тренируюсь делать).

Решение задачи: «Выборка данных из нескольких листов в отдельный файл»

textual
Листинг программы
Sub tt()
 
    Dim sh As Worksheet, nsheet As Worksheet
    Dim city$, actbook As Workbook, Newbook As Workbook
 
    city = InputBox("city?")
 
    If Len(city) Then
        Application.ScreenUpdating = False
        Set actbook = ActiveWorkbook
        Set Newbook = Workbooks.Add(1)
        For Each sh In actbook.Worksheets
            Set nsheet = Newbook.Sheets.Add(After:=Newbook.Sheets(Newbook.Sheets.Count))
            nsheet.Name = sh.Name
            With sh
                If .AutoFilterMode Then .AutoFilter.Range.AutoFilter
                .UsedRange.AutoFilter Field:=3, Criteria1:=city
                .UsedRange.SpecialCells(xlCellTypeVisible).EntireRow.Copy nsheet.Cells(1)
                .AutoFilter.Range.AutoFilter
            End With
        Next
        Application.DisplayAlerts = False
        Newbook.Sheets(1).Delete
        Application.DisplayAlerts = True
    End If
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы