Ципихович Эндрю
Помогающий
Offline
|
|
« : 03-04-2011 04:20 » |
|
Close и Save документа Word, не могу в них врубиться 'сохраняет документ не спрашивая об этом 'Dialogs(wdDialogFileSaveAs).Execute а как будет не сохранять документ не спрашивая об этом поясню, предполагается, что пользователь в документе своими руками ничего делать не будет и закрывая документ ему и нужна инструкция не сохранять документ не спрашивая об этом. Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки Спасибо
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #1 : 04-04-2011 04:27 » |
|
так кнопочкой F1 пользоваться и не научились ? Word Developer Reference Document.Close Method Closes the specified document. Syntax
expression.Close(SaveChanges, OriginalFormat, RouteDocument)
expression Required. A variable that represents a Document object.
Parameters
Name Required/Optional Data Type Description SaveChanges Optional Variant Specifies the save action for the document. Can be one of the following WdSaveOptions constants: wdDoNotSaveChanges, wdPromptToSaveChanges, or wdSaveChanges. OriginalFormat Optional Variant Specifies the save format for the document. Can be one of the following WdOriginalFormat constants: wdOriginalDocumentFormat, wdPromptUser, or wdWordDocument. RouteDocument Optional Variant True to route the document to the next recipient. If the document does not have a routing slip attached, this argument is ignored. Вас должен заинтересовать параметр SaveChanges со сзначением wdDoNotSaveChanges
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #2 : 04-04-2011 17:38 » |
|
Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки. Тогда как я пытаюсь закрыть файл кнопка Undo не активна, серого цвета, поэтому строка If ActiveDocument.Undo = False Then самое точное условие. код If ActiveDocument.Undo = False Then ActiveDocument.Close wdDoNotSaveChanges находится внутри шаблона в прцедуре АutoClose Получаю Ошибка команды и запрос на сохранение, а мне не нужно ни того ни другого ?
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #3 : 05-04-2011 04:45 » |
|
нифига не понял. Зачем Вам проверять условие ActiveDocument.Undo = False ? если просто вызвать ActiveDocument.Close wdDoNotSaveChanges что будет? И еще, где находится макрос? Почему используете ActiveDocument?
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #4 : 05-04-2011 11:06 » |
|
поясню еще раз Есть шаблон, например файл с именем 1.дот В проводнике курсором выделяю этот файл Выбираю Открыть Ничего не делаю Пытаюсь закрыть мне сообщение сохранить ли изменение Мне оно не нужно, потому как прога должна проверить делал ли пользователь изменения то есть тогда я в АutoClose этого документа пишу проверку If ActiveDocument.Undo = False и это самое точное условие Потому что, когда я пытаюсь закрыть шаблон стрелочка Ундо серого цвета А всю работу делал по открытию файла не пользователь, а прога Вы советуете если просто вызвать Код: ActiveDocument.Close wdDoNotSaveChanges тогда получаю Ошибка команды и запрос на сохранение, а мне не нужно ни того ни другого ?
Добавлено через 5 часов, 24 минуты и 19 секунд: по большому счёту эта строка: If ActiveDocument.Undo = False Then Dialogs(wdDialogFileSaveAs).Execute мне как бальзам на душу за исключением того, что если бы не сохранялся шаблон с текущим врменем
|
|
« Последнее редактирование: 05-04-2011 16:31 от Ципихович Эндрю »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #5 : 05-04-2011 17:50 » |
|
Когда ты открываешь в шаблон (dot-файл), Word на базе него создаёт новый документ (doc-файл). Естественно, что документ требует сохранения.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #6 : 06-04-2011 04:31 » |
|
>Когда ты открываешь в шаблон (dot-файл), Word на базе него создаёт новый документ (doc-файл). Естественно, что >документ требует сохранения. Да уж нет товарищ, то что Вы сказали, открыли Ворд с панели Пуск или с ярлыка на рабочем столе или из Пуск прграммы, ничего н делая закрываем и что спросит о сохранении? Нет. А спрашивает о сохранении потому что прога работала Повторюсь еще раз с пунктами: Есть шаблон, например файл с именем 1.дот 1. В проводнике курсором выделяю этот файл 2. Выбираю Открыть 3. Ничего не делаю 4. Пытаюсь закрыть мне сообщение сохранить ли изменение Какой из этих пунктов свидетельствует, что на базе него, шаблона создаёт новый документ (doc-файл) ?
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #7 : 06-04-2011 05:17 » |
|
как это не странно, но Есть шаблон, например файл с именем 1.дот 1. В проводнике курсором выделяю этот файл 2. Выбираю Открыть 3. делаю изменениня 4. пишу ThisDocument.Close wdDoNotSaveChanges и шаблон просто и красиво закрывается ничего не спрашивая
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #8 : 06-04-2011 05:55 » |
|
3 пункт >3. делаю изменениня Зачем так сделали?? Может >шаблон просто и красиво закрывается ничего не спрашивая это для кого-то благо но мне и даром не нужно Всё же сделайте 3. не делаю изменениня И не забывайте про прогу которая сидит в АвтоОпене
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #9 : 06-04-2011 06:36 » |
|
я это к тому, что не важно были изменения или нет, приведенный код просто закроет открытый документ а про прогу в автоопен ничего не было сказано что за прога и что она делает?
Добавлено через 1 минуту и 2 секунды: как минимум, убеоите пргу из автоопен и попробуйте закрыть приведенным кодом, если срабоатет (а так оно и будет), то проблема в проге, прописанной в автоопен
смотрите что она делает
|
|
« Последнее редактирование: 06-04-2011 06:37 от HandKot »
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #10 : 06-04-2011 07:02 » |
|
как не было сказано в условии, цитата из условия: Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки Вот и сказано, если убрать прогу, то никакие коды не нужно, да конечно проблема в проге, она лишь в шабон, в имеющийся комбобокс закидывает строки, но когда я пытаюсь закрыть шаблон, кнопочка Ундо не активна, всё верно, я ведь ничего не менял. Раз ничего не менял, значит пусть закрывается, ничего не спрашивает и дата изменения должна осаться та же, а не текущая. Как это сделать??? Добавлено через 1 минуту и 34 секунды:на язык ВБА перевести можно закрыть документ без изменения и не спрашивать о необходимости их делать?
|
|
« Последнее редактирование: 06-04-2011 07:04 от Ципихович Эндрю »
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #11 : 06-04-2011 07:31 » |
|
на язык ВБА перевести можно закрыть документ без изменения и не спрашивать о необходимости их делать? ужЁ сто раз говорилось ThisDocument.Close wdDoNotSaveChanges
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #12 : 06-04-2011 07:38 » |
|
ThisDocument.Close wdDoNotSaveChanges - спрашивать не спрашивает, а временем изменения делает текущее время, мол я только что менял, а что я менял, просто посмотрел Добавлено через 20 минут и 32 секунды:сообщение-Ответ #14 : Сегодня в 08:38 Прошу не читать Вот код: Sub AutoClose() 1If ActiveDocument.Undo = False And Len(ActiveDocument.Path) = 0 Then 2Dialogs(wdDialogFileSaveAs).Execute 3Else 4ThisDocument.Close wdDoNotSaveChanges 5End If End Sub 5 строк так вот делая 4 строку у меня сообщение Ошибка команды и спрашивает о сохранении ранее я думал, что строка 2 - золото, на самом деле оказывается файлы сохранялись в папке мои документы, то есть проблем стало вдвоё больше Одним словом есть юзер, у него есть шаблон 1.дот нужно как бы он его не открыл или 1. В проводнике курсором выделяю этот файл 2. Выбираю Открыть или 1. В проводнике курсором выделяю этот файл 2. Выбираю Создать и ничего не делая его закрыл чтобы его не спрашивало ни о чём и не пересохранялось с текущей датой Ну это же нормально, раз он ничего не делал, зачем его спрашивать, зачем пересохранятьЭто возможно, каков скрипт, подскажите пожалуйста
|
|
« Последнее редактирование: 06-04-2011 07:58 от Ципихович Эндрю »
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #13 : 06-04-2011 09:30 » |
|
ну наконец-то, разроджились 1. Метода AutoClose в Ворде нет 2. ActiveDocument.Undo = False And Len(ActiveDocument.Path) ИМХО полная лажа у документа есть хооршее св-во Saved, которое и показывает, что был изменен документ или не был Учитывая выше сказанное и " в имеющийся комбобокс закидывает строки", что гарантирует установку св-ва Saved в ЛОЖЬ, которое инициализирует диалог о сохранении документа, нужно в процедуре загрузки комбо, сбросить это св-во в ИСТИНУ, и ничего более Private Sub Document_Open() 'здесь идет заполение комбо Dim MyCombo As combo MyCombo.AddItem ... 'СТАВИМ ФЛАГ, ЧТО ИЗМЕНЕНИЙ НЕ БЫЛО ThisDocument.Saved = True End Sub и не нужно придумывать велосипед Если я не прав, поправьте меня
|
|
« Последнее редактирование: 06-04-2011 09:38 от HandKot »
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #14 : 08-04-2011 06:19 » |
|
ответ я видел ещё позавчера, но как говорится боялся спугнуть так вот, не пойму почему В говорите, что Метода AutoClose в Ворде нет Назовите его как хотите, но макрос AutoClose() у меня есть и работает он по закрытию документа на сегодняшний день в его коде одна строка: ThisDocument.Saved = True, которую Вы мне посоветовали так вот открывая файл или 1. В проводнике курсором выделяю этот файл 2. Выбираю Открыть или 1. В проводнике курсором выделяю этот файл 2. Выбираю Создать
и ничего не делая пытаюсь его закрыть до сих пор спрашивает сохранитьли изменения ??
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #15 : 08-04-2011 11:14 » |
|
насколько я понял, без файла нифига ничег не получится
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #16 : 08-04-2011 14:27 » |
|
пожалуйста Добавлено через 22 минуты и 53 секунды:о чудо теперь когда 1. В проводнике курсором выделяю этот файл 2. Выбираю Создать 2 раза спросит, Баден-Баден )) Добавлено через 14 часов, 40 минут и 11 секунд:также пробовал эту строку Application.DisplayAlerts=wdAlertsNone а Автоклозе - нифига
|
1.zip (149.07 Кб - загружено 1094 раз.)
|
« Последнее редактирование: 09-04-2011 05:30 от Ципихович Эндрю »
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #17 : 11-04-2011 05:12 » |
|
насколько я понял, Вы нифига не пытались понять то, о чем я пимсал что будет если сделать как показано ниже Sub AutoNew() 'AutoNew - макрос работает только будучи написанным в шаблоне, на основании которого создается новый документ Ворд Application.Run "Normal.Добавляем_в_комбобокс_строки.Добавить_строки_в_комбобокс_при_открытии_файла" ThisDocument.Saved = True End Sub а AutoClose вообще выкинуть?
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #18 : 11-04-2011 12:12 » |
|
что будет, всё также будет исправно спрашивать: Сохранить ли изменения, спрашивает в обоих случаях
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #19 : 11-04-2011 12:32 » |
|
ну значит, спрашивает только у Вас и значит в документе происходят еще какие-то изменения после AutoNew.
У меня все закрывает без запроса
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #20 : 11-04-2011 12:41 » |
|
не ну хорошо, есть у меня в Нормал.дот АутоОпен, но когда я с Нормала запускаю файл закрывается как по маслу без запросов буду пробовать
Добавлено через 5 минут и 35 секунд: попробовал то же самое, спрашивает, мистика какая-то
|
|
« Последнее редактирование: 11-04-2011 12:46 от Ципихович Эндрю »
|
Записан
|
|
|
|
|