Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Получение фильтрованной таблицы / 7 сообщений из 7, страница 1 из 1
29.08.2019, 15:59
    #39855255
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
Здравствуйте!

Есть макрос, который выгружает таблицу с сайта со страничками таблицы. Там присутствует фильтр. По логике сначала выгружается страница, где присутствует первая страничка таблицы без использования фильтра. Потом макросом ставим фильтрацию, программно нажимаем на click и выгружается таблица с фильтром. Будто объект IE не учитывает, что была нажата кнопка и выгрузилась обновленная таблица.

После HTMLButton.Click получаем objCollection не фильтрованную. Почему так? Kак правильно написать?

Насколько правильно понимаю, что IE.Refresh и IE.Refresh2 не подходит.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
...
Dim IE As Object
Dim objCollection As Object
Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = False
IE.Navigate "https://www..."       

Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop       

IE.Visible = True   

Dim HTMLButton As MSHTML.HTMLInputElement
Set HTMLButton = IE.document.getElementsByclassname(".....")(0)
HTMLButton.Click


Set objCollection = IE.document.getElementsByclassname("...")(0).Children(0).Children(0).Children(0).Children
...

...
Рейтинг: 0 / 0
29.08.2019, 17:42
    #39855302
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
ferzmikkЗдравствуйте!

Есть макрос, который выгружает таблицу с сайта со страничками таблицы. Там присутствует фильтр. По логике сначала выгружается страница, где присутствует первая страничка таблицы без использования фильтра. Потом макросом ставим фильтрацию, программно нажимаем на click и выгружается таблица с фильтром. Будто объект IE не учитывает, что была нажата кнопка и выгрузилась обновленная таблица.

После HTMLButton.Click получаем objCollection не фильтрованную. Почему так? Kак правильно написать?

Насколько правильно понимаю, что IE.Refresh и IE.Refresh2 не подходит.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
...
Dim IE As Object
Dim objCollection As Object
Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = False
IE.Navigate "https://www..."       

Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop       

IE.Visible = True   

Dim HTMLButton As MSHTML.HTMLInputElement
Set HTMLButton = IE.document.getElementsByclassname(".....")(0)
HTMLButton.Click


Set objCollection = IE.document.getElementsByclassname("...")(0).Children(0).Children(0).Children(0).Children
...


а что в вашем понимание фильтр, возможно там просто строка 0 высотой стоит
может ссылку на сайт?
...
Рейтинг: 0 / 0
29.08.2019, 17:56
    #39855305
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
Fochaа что в вашем понимание фильтр?в коде одну строку пропустил
Код: vbnet
1.
2.
3.
4.
5.
...
IE.Visible = True   
IE.document.getElementByid("...").Value = "..." ' вводится значение определенного параметра фильтра
Dim HTMLButton As MSHTML.HTMLInputElement
...


Fochaвозможно там просто строка 0 высотой стоитЧто значит "строка 0 высотой стоит"?
...
Рейтинг: 0 / 0
30.08.2019, 10:21
    #39855485
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
Fochaвозможно там просто строка 0 высотой стоитПосле нажатия HTMLButton.Click в объекте IE обновляется таблица с учетом фильтра, а после Set objCollection = IE.document.getElementsByclassname("...")(0).Children(0).Children(0).Children(0).Children получаем не обновленную таблицу.
...
Рейтинг: 0 / 0
30.08.2019, 10:38
    #39855501
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
ferzmikkПосле нажатия HTMLButton.Click в объекте IE обновляется таблица с учетом фильтра, а после Set objCollection = IE.document.getElementsByclassname("...")(0).Children(0).Children(0).Children(0).Children получаем не обновленную таблицу.И что самое интересное, когда выгрузилась обновленная страница и нажал "Просмотр HTML-кода", то там присутствуют данные не обновленной таблицы. Почему так? Как выгрузить обновленную таблицу?
...
Рейтинг: 0 / 0
30.08.2019, 11:36
    #39855543
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
Еще заметил, когда выгружаешь не фильтрованную таблицу, то странички таблицы имеют соответствующие домены:
http://aaaaa.ru/bbbbb/ или http://aaaaa.ru/bbbbb/?page=1
http://aaaaa.ru/bbbbb/?page=2
http://aaaaa.ru/bbbbb/?page=3

Когда выгружаешь фильтрованную таблицу, то
- если до фильтрации была страница http://aaaaa.ru/bbbbb/, то странички имеют одинаковый домен http://aaaaa.ru/bbbbb/
- если до фильтрации была страница http://aaaaa.ru/bbbbb/?page=2, то странички имеют одинаковый домен http://aaaaa.ru/bbbbb/?page=2
...
Рейтинг: 0 / 0
30.08.2019, 13:30
    #39855641
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение фильтрованной таблицы
Это от сайта так зависит? Или для обновления нужно использовать какой то метод для объекта IE или IE.Document?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Получение фильтрованной таблицы / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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