Страницы: 1
RSS
Импорт данных (формулы, значения) из закрытой книги, где данные сохранены на скрытом листе и установлен автофильтр
 
Добрый день.
Помогите, пожалуйста, организовать импорт данных.

Необходимо импортировать данные (формулы, значения) из закрытой книги (из Excel > в Excel), где данные сохранены на скрытом листе и установлен автофильтр.
Проблема в том, что, когда файл сохранен с установленным/поставленным фильтром данные импортируются не корректные.

Я попытался через VBA снять фильтр, но сам макрос в рабочем документе не хочет работать (WS.Select - ЗДЕСЬ возникает ОШИБКА), а вот в новом созданном документе Excel работает отлично.
Рабочий Excel документ с макросами (всего 8 листов) при закрытии файла скрываются все листы кроме 6 «Безопасность макросов» (три из них скрыты постоянно – «Лист1»; «Лист2»; «Лист8»). При запуске (открытие) отображаются 4-и листа: «Лист3»; «Лист4»; «Лист5»; «Лист6» (скрывается 6-ой + три из них скрыты постоянно – «Лист1»; «Лист2»; «Лист8»)
Можно ли импортировать данные через VBA так, чтобы установленный автофильтр и скрытие листы не создавали помеху?
Код
Public Sub CleanFilterExcel()
    Dim xl As Excel.Application
    Dim WB As Excel.Workbook
    Dim WS As Excel.Worksheet
    Dim ControlFile As String
       ControlFile = ActiveWorkbook.Name
           stNamePath = "E:\Users\ASS\Desktop\"
           stNameFile = "Калькулятор.xlsb"
     Set xl = CreateObject("Excel.Application")
         xl.Visible = False
     Set WB = Excel.Workbooks.Open(stNamePath & stNameFile)
     Set WS = WB.Worksheets("Расчет")
         Windows(stNameFile).Activate
           'WS.Visible = xlSheetVisible 'При запуске файла, макрос (Workbook_Open) отображает скрытые листы в т.ч. лист "Расчет"
         WS.Select 'ЗДЕСЬ возникает ОШИБКА
      If WS.FilterMode Then WS.ShowAllData 'Если установлен фильтр очищаем
      WB.Close saveChanges:=True  'закрыть рабочую книгу с сохранением изменений
       Set xl = Nothing
       Set WB = Nothing
       Set WS = Nothing
      Windows(ControlFile).Activate
End Sub

Когда запускаю макрос CleanFilterExcel через рабочий документ не срабатывает Private Sub Workbook_Open() чтобы отображать листы: «Лист3»; «Лист4»; «Лист5»; «Лист6». Сам документ защищен (Защита листа и книги). «Лист3» = «Расчет».
Знания могут придать человеку вес, но только воспитанность может придать ему блеск
Страницы: 1
Читают тему
Наверх