Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 08.02.2015
Сообщений: 13

Программное переоткрытие документа

03.12.2015, 09:58. Показов 2162. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть в том, что надо с помощью VBA закрыть и открыть заново один и тот же документ.
Если это пытаться сделать из встроенного в документ макроса, то получается только закрыть документ.
А если делать это с помощью не привязанного к документу макроса, то на другой машине этого сделать уже не удастся, т.к. там такой макрос будет отсутствовать.

Подскажите, как в данной ситуации поступить.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2015, 09:58
Ответы с готовыми решениями:

Программное форматирование документа в MS Word
У меня такой вопрос. Сделал програмку на vba, с помощью которой програмно заполняется шаблон word, но при нажатии на кнопку...

Программное копирование и вставка фрагментов документа
Подскажите как можно копировать фрагменты (это абзацы текста с таблицами в моем случае) из одного файла Word и вставлять в другой...

Проблема. Сохранение и переоткрытие документа.
Задача в следующем: Пользователь открывает документ. Нажимает кнопочку н-р: "зарегистрировать". 1) производятся некоторые...

6
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.12.2015, 10:20
Temon137, объясните, почему надо именно закрыть и открыть документ, почему недостаточно сохранить его. И о каком приложении идет речь.
0
2047 / 478 / 132
Регистрация: 13.11.2008
Сообщений: 917
03.12.2015, 18:16
Лучший ответ Сообщение было отмечено Temon137 как решение

Решение

Вообще, если цель просто переоткрыть файл без участия пользователя, то можно попробовать так:
Visual Basic
1
2
3
4
5
6
7
8
Sub ReOpenFile()
    Workbooks.Add 'чтобы предотвратить закрытие Excel, если книга с кодом последняя
    Application.OnTime Now + TimeValue("00:00:01"), "'" & ThisWorkbook.FullName & "'!OpenOnTime"
    ThisWorkbook.Close True'закрываем с сохранением
End Sub
Sub OpenOnTime()
ThisWorkbook.Activate
End Sub
3
0 / 0 / 0
Регистрация: 08.02.2015
Сообщений: 13
03.12.2015, 19:06  [ТС]
The Prist, спасибо, ваш код сработал. То, что нужно.
Казанский, приложение MS Excel, а нужно вот для чего: при создании большой цепочки объектов приложение начинает дико подвисать, даже если все объекты после использования разрушаются (проверял выводом сообщения из деструктора). Пока как вариант решения вижу только переоткрытие документа.

Добавлено через 24 минуты
К сожалению, такой способ переоткрытия документа проблему не исправил, зависания остались. Видимо помогает только перезапуск самого приложения MS Excel.
Может есть способ очистки памяти ото всех созданных во время работы программы объектов и данных?
0
2047 / 478 / 132
Регистрация: 13.11.2008
Сообщений: 917
03.12.2015, 19:15
Нет, такого нет.
Но как показывает практика, грамотно написанный код к такому не приводит. Основные моменты: очищать вовремя все Public переменные, которые не будут больше использоваться. Особенно это касается словарей, массивов и коллекций, а так же ссылок на документы.
0
0 / 0 / 0
Регистрация: 08.02.2015
Сообщений: 13
03.12.2015, 20:30  [ТС]
Во всех классах, из-за которых начинается замедление работы, успешно отрабатывает деструктор (метод Class_Terminate). Для инициализации уничтожения объекта, как я прочитал, необходимо всем ссылкам на него присвоить значение Nothing, и именно так я и делаю.
Отработку деструктора можно считать индикатором однозначного удаления объекта?
0
2047 / 478 / 132
Регистрация: 13.11.2008
Сообщений: 917
03.12.2015, 21:07
Цитата Сообщение от Temon137 Посмотреть сообщение
можно считать индикатором однозначного удаления объекта
Удалением нет, а очисткой да. Но насчет однозначности уверенности быть не может никогда - все же VBA сам занимается очисткой памяти от неиспользуемых объектов и доступа напрямую очистить память из него нет.
Возможно проблема вообще не в этом. Так сходу не сказать о причинах зависаний, т.к. никто не знает что Вы там делаете вообще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2015, 21:07
Помогаю со студенческими работами здесь

Программное проведение документа
Привет. Пишу такой код для программного проведения документа(обработку пишу): &НаСервере Процедура ПроведениеДок(Команда) ...

Программное заполнение документа
Необходимо заполнить документ (Выдача_денег_из_кассы) на основе документа (Начисление_заработной_платы) &НаСервере Процедура...

Программное создание документа
В общем необходимо было в ТЧ обработки выгрузить данные по номенклатуре из Реализации Т и У потом создать новый документ...

Программное создание документа
Доброго времени суток! Господа, подскажите, как при программном создании документа выставить ему правильный номер и организацию? ...

Программное проведение документа из обработки
Всем привет! В обработке создаю документ, но не пойму как его провести. Пробовал вот так, но не получается.Подскажите пожалуйста!!! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru