powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Установка автофильтра в листе excel при выгрузке данных из Аксесс
7 сообщений из 7, страница 1 из 1
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714330
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Делаю выгрузку данных из формы аксесса в excel. Вот код выгрузки:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dim PrintRep As Object
Dim ExportData As DAO.Recordset
Dim LastRow As Integer
Set PrintRep = CreateObject("Excel.Application")
 Set WB = PrintRep.Workbooks.Add
 Set WS = WB.Worksheets(1)
 Set ExportData = Me.FactOfJobsForPeriod.Form.Recordset
 WS.Range("A1:H1").Merge
  WS.Rows(1).Font.Bold = True
  WS.Rows(1).Font.Size = 12
  WS.Rows(7).Font.Bold = True
 ExportData.MoveFirst
WS.Range("D8").CopyFromRecordset ExportData
LastRow = WS.usedRange.Row + WS.usedRange.Rows.Count - 1
WS.usedRange.Columns.autofit
WS.cells(LastRow + 2, 2).Formula = "=SUBTOTAL(109,O8:O" & LastRow & ")"
WS.cells(LastRow + 3, 2).Formula = "=SUBTOTAL(109,R8:R" & LastRow & ")"
WS.cells(LastRow + 4, 2).Formula = "=SUBTOTAL(109,T8:T" & LastRow & ")"
WS.cells(LastRow + 5, 2).Formula = "=SUBTOTAL(109,U8:U" & LastRow & ")"
WS.cells(LastRow + 6, 2).Formula = "=SUBTOTAL(109,V8:V" & LastRow & ")"
WS.cells(LastRow + 7, 2).Formula = "=SUBTOTAL(109,W8:W" & LastRow & ")"
WS.cells(LastRow + 8, 2).Formula = "=SUBTOTAL(109,X8:X" & LastRow & ")"
WS.cells(LastRow + 9, 2).Formula = "=SUBTOTAL(109,Y8:Y" & LastRow & ")"
WS.Range("D8:AA" & LastRow).Select
WS.Selection.AutoFilter
PrintRep.Visible = True 


кодом
Код: vbnet
1.
 LastRow = WS.usedRange.Row + WS.usedRange.Rows.Count - 1 


определяю номер последней строки выгруженного диапазона.
Проблема возникла в коде :
Код: vbnet
1.
2.
WS.Range("D8:AA" & LastRow).Select
WS.Selection.AutoFilter 


Здесь я попытался поставить автофильтр. На строку

Код: vbnet
1.
WS.Selection.AutoFilter 



ругается: Object Doesn't support this property or method . Что не так?
Код: vbnet
1.
 WS.Range("D8:AA" & LastRow).Select 


работает - лист выходит с выделенным диапазоном.
Пробовал в Excel записывать макрос по установке фильтра. Он написал 2 строчки:
Код: vbnet
1.
2.
Range("D8:AA100").Select
Selection.Autofilter 


я попробовал сделать по этому образцу - не работает...
писал
Код: vbnet
1.
WS.Selection.AutoFilter 



и
Код: vbnet
1.
Selection.AutoFilter


никакой из вариантов не проходит...
...
Рейтинг: 0 / 0
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714339
vTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объект диапазон (range или selected) не имеет метода или свойства AutoFilter. Это в общем-то логично, т.к. при Autofilter задействуется вся страница. Наверное, есть метод на уровне Application или около того. Советую включить автозапись макроса, выбрать диапазон и включить автофильтр, после чего выключить автозапись макроса и посмотреть что получилось
...
Рейтинг: 0 / 0
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714374
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запись я включал. макрос состоял из 2-х строк - выделение диапазона и автофильтр к выделенному...
...
Рейтинг: 0 / 0
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714380
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
Range("D8:AA100").Select
Selection.Autofilter 


вот что написал макрос во время записи. Что делал я во время этой записи:
1)выделил диапазон
2)выполнил команду: Данные->Автофильтр - нажал на кнопку с воронкой в ленте
...
Рейтинг: 0 / 0
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714403
vTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, может быть из-за того, что у вас Filter с большой буквы? Autofilter и AutoFilter?
...
Рейтинг: 0 / 0
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714512
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vTinFilter с большой буквы? Autofilter и AutoFilter?VB не чувствителен к регистру. Поэтому здесь ошибки точно нет.
А вот тот факт, что лист WS(Worksheets(1)) явно не активируется - вполне может повлиять на результат.
Проще сразу так же, как и все до этого:
Код: vbnet
1.
WS.Range("D8:AA" & LastRow).AutoFilter


Еще неплохо бы проверить, защищен ли лист.
И кстати, лучше LastRow объявлять как Long(т.к. последняя строка может быть больше, чем 32768)
Код: vbnet
1.
Dim LastRow As Long
...
Рейтинг: 0 / 0
Установка автофильтра в листе excel при выгрузке данных из Аксесс
    #38714663
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, все работает
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Установка автофильтра в листе excel при выгрузке данных из Аксесс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]