powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с Refresh'ем объектов
5 сообщений из 5, страница 1 из 1
Проблема с Refresh'ем объектов
    #38893162
Sotrudnik_1990
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

В Excel есть 3 таблицы, которые цепляются к оракловым таблицам. Необходимо их обновить и далее распихать по листам, отвформатировать, ...

Проблема в том, что когда запускаю макрос

Код: vbnet
1.
2.
cbook.RefreshAll
cSheet.Range(Cells(5, 1), Cells(icounter, jcounter)).Copy



вылетает ошибка о пустоте копируемого объекта - метод Copy отрабатывает раньше, чем обновятся объекты.

Подскажите, возможно ли это победить или необходимо использовать другой способ получения данных?
...
Рейтинг: 0 / 0
Проблема с Refresh'ем объектов
    #38893199
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обновляйте таблицы по одной с ожиданием завершения:
Код: vbnet
1.
MyQT.Refresh(BackgroundQuery:=False)

У метода RefreshAll нет такого параметра.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема с Refresh'ем объектов
    #39791498
Heldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но тогда макрос после refresh-а перестает работать.
Прочитал StackOverflow и другие ресурсы интернета, в которых говорится об использовании методов и свойств "DoEvents", "BackgrgoundQuery = False" и CalculateUntilAsyncQueriesDone, - ничего это не помогает.
Как после refresh-а выполнить сохранение книги ActiveWorkbook.Save?
...
Рейтинг: 0 / 0
Проблема с Refresh'ем объектов
    #39791765
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sotrudnik_1990возможно ли это победить или необходимо использовать другой способ получения данных?самый простой вариант - Do Loop до тех пор, пока Cells(icounter, jcounter) не будет заполнена каким-то значением. Т.к. это у Вас последняя ячейка данных, то наличие в ней значения будет означать завершение выгрузки:
Код: vbnet
1.
2.
3.
4.
5.
cbook.RefreshAll
Do While Cells(icounter, jcounter).value <> ""
doevents
loop
cSheet.Range(Cells(5, 1), Cells(icounter, jcounter)).Copy


главная проблема вполне логична: последняя ячейка должна обязательно иметь какое-то значение :)
...
Рейтинг: 0 / 0
Проблема с Refresh'ем объектов
    #39793178
Heldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отлично! Все заработало. Спасибо большое!

PS. Если у вас несколько таблиц, то нужно каждую проверять на изменение/обновление данных.
И у всех таблиц должно быть отключено "Фоновое обновление".
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с Refresh'ем объектов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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