powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрет на сохранение документа
6 сообщений из 6, страница 1 из 1
Запрет на сохранение документа
    #36748911
DnG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сделать запрет на сохранение документа. Пишу
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Application.Run "Module1.Несохранять"
Cancel = Стоп
End Sub


как же теперь сохранить vba код? у меня генерится запрет на сохранение.
...
Рейтинг: 0 / 0
Запрет на сохранение документа
    #36749067
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnG,

ну самый простой способ на мой взгляд такой
создаете глобальную переменную типа ToSaveOrNotToSave

присваиваете ей например True отдельной процедурой.


В коде Workbook_BeforeSave ставите проверку на значение этой переменной. Если true, то сэйвим, иначе cancel=true


Вот если Вам надо сохранить код, то запускаете процедуру, если Вам не надо то соответственно...
...
Рейтинг: 0 / 0
Запрет на сохранение документа
    #36749353
Thermik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DnG,

придумайте уникальное имя документа и поставьте

if Name = "ххх" то сохранять

сохраните и переименуйте документ в проводнике
...
Рейтинг: 0 / 0
Запрет на сохранение документа
    #36749563
DnG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShamanusDnG,

ну самый простой способ на мой взгляд такой
создаете глобальную переменную типа ToSaveOrNotToSave

присваиваете ей например True отдельной процедурой.


В коде Workbook_BeforeSave ставите проверку на значение этой переменной. Если true, то сэйвим, иначе cancel=true


Вот если Вам надо сохранить код, то запускаете процедуру, если Вам не надо то соответственно...
автор
Dim SaveOrNotSave As Boolean
Dim Стоп As Boolean

Private Sub p1()

SaveOrNotSave = True

End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next

If SaveOrNotSave Then
Application.Run "Module1.СохрНомераПослСФ"
Application.Run "Module1.Несохранять"
Cancel = Стоп
End If
End Sub



а где запускать p1 ?
...
Рейтинг: 0 / 0
Запрет на сохранение документа
    #36749663
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnG,

тогда скорее так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public SaveOrNotSave As Boolean
Public Стоп As Boolean

Private Sub p1()
SaveOrNotSave = True
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next

If SaveOrNotSave = False Then
Application.Run "Module1.СохрНомераПослСФ"
Application.Run "Module1.Несохранять"
Cancel = True
End If
End Sub


тогда получится так -
1. вы разработчик, открыли книгу, внесли изменения.
2. Глобальная переменная SaveOrNotSave по умолчанию на момент открытия книги равна False
3. Запускаете непосредственно из кода процедуру P1 (просто встаньте на код процедуры и нажмите Run Sub или F5), глобальная переменная равна True
4. Сохраняете книгу - при этом книга обращается к глобальной переменной, видит что она True и игнорирует Ваши операции по отмене сохранения и и выполняет сохранение.
...
Рейтинг: 0 / 0
Запрет на сохранение документа
    #36749806
DnG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShamanusDnG,

тогда скорее так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public SaveOrNotSave As Boolean
Public Стоп As Boolean

Private Sub p1()
SaveOrNotSave = True
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next

If SaveOrNotSave = False Then
Application.Run "Module1.СохрНомераПослСФ"
Application.Run "Module1.Несохранять"
Cancel = True
End If
End Sub


тогда получится так -
1. вы разработчик, открыли книгу, внесли изменения.
2. Глобальная переменная SaveOrNotSave по умолчанию на момент открытия книги равна False
3. Запускаете непосредственно из кода процедуру P1 (просто встаньте на код процедуры и нажмите Run Sub или F5), глобальная переменная равна True
4. Сохраняете книгу - при этом книга обращается к глобальной переменной, видит что она True и игнорирует Ваши операции по отмене сохранения и и выполняет сохранение.


Спасибо, Вы очень помогли :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрет на сохранение документа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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