Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/121: Рейтинг темы: голосов - 121, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
1

Выход из документа без сохранения.

07.09.2010, 10:56. Показов 22407. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно закрыть документ без сохранения. К сожалению ничего неполучается.

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Document_Close()
Application.DisplayAlerts = True
strPath = 'C:Моя директория'
sName = ActiveDocument.Name
    If ActiveDocument.FullName Like '*' & strPath & '*' And InStr(sName, '&') Then
    Application.DisplayAlerts = False
    ActiveDocument.Close
    End If
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2010, 10:56
Ответы с готовыми решениями:

Защита документа word. (без сохранения, без копирования)
Доброго времени суток. Хочу сначала поблагодарить участников форума за помощь в моим предыдущих...

Как закрыть Excel из макроса без сохранения документа?
Надо закрыть Excel - само приложение из макроса без сохранения документа. Как это обстряпать?

Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на сохранеие
Помогите чайнику.Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на...

Событие сохранения документа для Word
В VBA для Word не обнаружил событие сохранения документа. Вот в VBA для Excel есть событие...

12
0 / 0 / 1
Регистрация: 08.04.2009
Сообщений: 17
07.09.2010, 11:06 2
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
0
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
07.09.2010, 15:43  [ТС] 3
Пишет Run-time error 4198
Ошибка команды.

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Document_Close()
Application.DisplayAlerts = True
strPath = 'C:Моя директория'
sName = ActiveDocument.Name
    If ActiveDocument.FullName Like '*' & strPath & '*' And InStr(sName, '&') Then
    Application.DisplayAlerts = False
    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
    End If
End Sub
0
0 / 0 / 1
Регистрация: 08.04.2009
Сообщений: 17
08.09.2010, 13:16 4
непонятна строка
Visual Basic
1
2
If ActiveDocument.FullName Like ''*'' & strPath & ''*'' And 
InStr(sName, ''&'') Then
Во-первых, что Вы пытаетесь найти в полном имени файла? Что значит ''&''?
во-вторых, эта строка у меня совершенно справедливо вызывает
ошибку 13(несоответствие типа данных) так как к строковым переменным
Вы пытаетесь прицепить значение типа Integer, возвращаемое функцией
Visual Basic
1
InStr(sName, ''&'')
Андрей
0
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
09.09.2010, 17:21  [ТС] 5
Все равно ошибка выскакивает на строчке
Visual Basic
1
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
.

Пишет Run-time error 4198
Ошибка команды.
Может потому что закрыть мы хотим в событии Close
0
Comanche
09.09.2010, 17:48 6
Попробуй SaveChanges:=False
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
09.09.2010, 19:19  [ТС] 7
Ошибок нет, но привходе спрашивает о сохранении файла.
0
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
09.09.2010, 19:20  [ТС] 8
Пардон, при выходе.
0
Comanche
09.09.2010, 19:27 9
Ну не знаю тогда.
Да сохрани его перед закрытием отдельной командой - да и всех делов.
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
09.09.2010, 19:35  [ТС] 10
Вообщем то цель не сохранять.
0
Comanche
09.09.2010, 19:41 11
)
затупил я что-то

Тогда ни черта не понимаю.
Только что сделал процедуру с единственной строчкой:
Visual Basic
1
ActiveDocument.Close False
В пустом документе напечатал текст и, не сохраняя документ, переключился в окно VBA и выполнил эту процедуру. Документ закрылся без всяких вопросов.
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 86
09.09.2010, 19:55  [ТС] 12
Да конечно, если запустить отдельно команду
ActiveDocument.Close False - все работает нормально.

А тут событие на закрытие файла, из кторого нужно выйти без сохранения.

Дело в том что при событии открытия файла из некоторой папки, переписываются модули в VBA в открытый файл. Модули предназначены для того что-бы не можна было распечатать документ и сохранять.
0
Comanche
10.09.2010, 12:43 13
Что-то я совсем невнимательно читал условие твоей задачи (
Вот решение:
Visual Basic
1
2
3
Sub AutoClose()
    ActiveWindow.Close False
End Sub
Этот 'авто-макрос' надо разместить или в ThisDocument, или в каком-либо модуле, находящемся внутри документа.
Документ захлопнется без лишних вопросов и без сохранения.
10.09.2010, 12:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2010, 12:43
Помогаю со студенческими работами здесь

После очередного сохранения документа и последующего его запуска возникла 'недопустимая ошибка'
Помогите решить проблему. Суть заключается в слудующем: создал документ Excel под Office 97,...

Закрыть книгу без сохранения
По данному коду закрывается файл Private Sub CommandButton10_Click() ThisWorkbook.Close...

Закрыть форму без сохранения изменений
здравствуйте! Подскажите, пожалуйста, как закрыть форму без сохранения изменений, внесенных в такие...

Текстовый редактор. Выход с сохранением. Выход без сохранения.
привет! помогите, плиз: Создайте простейший текстовый редактор, в котором при выходе содержимое...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru