powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / закрыть файл програмно
25 сообщений из 223, страница 8 из 9
закрыть файл програмно
    #36734473
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

То есть я понимаю, что строка:
If Len(Dir$("D:", vbDirectory)) = 0 Then Beep 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
Не верная, а как будет правильно?
И я ведь её не с потолка взял, откуда не помню, с примера наверное и проверял неоднократно и у меня она работает, почему???
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734488
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

Специально по Вашему совету переделал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
'уточнение наличия элемента управления с именем ... в документе
Количество_InlineShapes = ActiveDocument.InlineShapes.Count
If Количество_InlineShapes =  0  Then Exit Sub
For u =  1  To Количество_InlineShapes
Имя = ActiveDocument.InlineShapes(u).OLEFormat.Object.Name
If Имя = "Frame_рамка_каркас" Then Exit For
If u = Количество_InlineShapes And Имя <> "Frame_рамка_каркас" Then Exit Sub
Next
Так пойдёт???
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734520
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас всё уже исправил, подскажите, пожалуйста как же всё же добиться:
Когда пользователь ничего лично не изменял в документе, а изменения в документе делал макрос, чтобы когда пользователь делал следующее:
Открыл Закрыл файл, чтобы его не спрашивало о сохранении файла
Открыл через Создать Закрыл файл, чтобы его не спрашивало о сохранении файла
И забегая наперёд, когда всё же этот документ будет сохранён, чтобы когда пользователь
Открыл Закрыл файл, чтобы его не спрашивало о сохранении файла
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734593
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro,

То есть я понимаю, что строка:
If Len(Dir$("D:", vbDirectory)) = 0 Then Beep 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
Не верная, а как будет правильно?
И я ведь её не с потолка взял, откуда не помню, с примера наверное и проверял неоднократно и у меня она работает, почему???
Это проверка на то, есть ли какие-нибудь файлы или папки на диске D: в корне
Но отсутствие таких файлов не отменяет самого наличия диска D:
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734599
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюСейчас всё уже исправил, подскажите, пожалуйста как же всё же добиться:
Когда пользователь ничего лично не изменял в документе, а изменения в документе делал макрос, чтобы когда пользователь делал следующее:
Открыл Закрыл файл, чтобы его не спрашивало о сохранении файла
Открыл через Создать Закрыл файл, чтобы его не спрашивало о сохранении файла
И забегая наперёд, когда всё же этот документ будет сохранён, чтобы когда пользователь
Открыл Закрыл файл, чтобы его не спрашивало о сохранении файла

Ответ был ранее. После того, как макрос выполнил все действия над документом, он должен сделать Saved=True для этого документа. Так как ты наворотил там черти-чего, отлаживай с помощью F8 или методом постепенного исключения участков кода.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734602
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

То есть я понимаю, что строка:
If Len(Dir$("D:", vbDirectory)) = 0 Then Beep 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
Не верная, а как будет правильно?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734603
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Дело в том, что там есть Saved=True
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734626
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro,

Дело в том, что там есть Saved=True
значит она либо не для того документа (ты там работаешь с ActiveDocument - а это понятие относительное), либо не последняя и после нее выполняется еще какой-нить макрос
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734627
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

То есть я понимаю, что строка:
If Len(Dir$("D:", vbDirectory)) = 0 Then Beep 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
Не верная, а как будет правильно?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734628
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понаставь во всех своих макросах Debug.Print в начале и в конце каждого макроса, чтобы писал типа "ThisDocument такой-то, ActiveDocument такой-то, макрос такой-то начался|окончился, состояние ThisDocument.Saved такое-то, состояние ActiveDocument.Saved такое-то". И смотри какие макросы в какой последовательности запускаются и что делают
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734629
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro,

То есть я понимаю, что строка:
If Len(Dir$("D:", vbDirectory)) = 0 Then Beep 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
Не верная, а как будет правильно?
Тебе зачем проверять наличие диска? Проверяй наличие нужной тебе папки и не парь мозг. Какое имеет значение, есть диск или нет, если там нет нужной тебе папки?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734630
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

То есть я понимаю, что строка:
If Len(Dir$("D:", vbDirectory)) = 0 Then Beep 'условие, если ..., тогда диск ... не существует, дословно если длина имени пути - Dir$ диска больше нуля тогда диск ... существует
Не верная, а как будет правильно?
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734634
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть для Вас нижеследующие сообщения это одни и те же сообщения???
Я понимаю двоякие сообщения в целях безопасности
То есть сообщение: Вы ввели направильный логин или пароль
То есть нельзя сказать точно что, в других случаях должно быть указано всё точно

"Диск D, на котором должны находиться файлы в папке с именем: D:\Рабочая папка\Пользователь для обеспечения программы не существует"

"На диске D папка с именем: D:\Рабочая папка, в которой должна находится папка с именем: D:\Рабочая папка\Пользователь, в которой должны находиться файлы для обеспечения программы не существует"

"На диске D папка с именем: D:\Рабочая папка\Пользователь, в которой должны находиться файлы для обеспечения программы не существует"
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734653
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте такую проверку, вполне хватит. Под себя доработайте.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Function CheckWorkDir()
    Dim bCreateWorkDir As Boolean
    
    If Dir("D:\Рабочая папка\Пользователь\", vbDirectory) = "" Then
        bCreateWorkDir = MsgBox("Для корректной работы программы, будет создан необходимый каталог: " & vbCrLf & _
        "D:\Рабочая папка\Пользователь\", vbExclamation Or vbYesNo, "Предупреждение") = vbYes
        
        If bCreateWorkDir Then
            On Error Resume Next
            
            MkDir "D:\Рабочая папка\"
            MkDir "D:\Рабочая папка\Пользователь"
            
            On Error GoTo  0 
        Else
            Exit Function 'Здесь нужно завершить работу с документом
        End If
    Else
        Exit Function 'И здесь тоже
    End If
End Function
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734655
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

Спасибо за совет, сейчас буду пробовать, у меня же по науке:
Len(Dir$
Быстрее чем сравнивать с ""
Там я Вас спрашивал о том как Вы сделали тадлицу в файле, вроде twork называется, так как же??
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734657
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,
Всё понял даже пробовать не буду
Если Вам всё интересно поясню почему
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734659
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюТо есть для Вас нижеследующие сообщения это одни и те же сообщения???
То есть нельзя сказать точно что, в других случаях должно быть указано всё точно
я ни при каких обстоятельствах не вижу в этом смысла.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734660
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

ну ошибку все же надо обрабатывать
создание папки может закончиться неудачно.
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734661
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюЕсли Вам всё интересно поясню почему
Поясните
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734663
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProVSVLAD,
ну ошибку все же надо обрабатывать
создание папки может закончиться неудачно.
Это я знаю. Но для ЦЭ хватит и этого, иначе будет топик +10 листов ещё
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734664
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADShocker.ProVSVLAD,
ну ошибку все же надо обрабатывать
создание папки может закончиться неудачно.
Это я знаю. Но для ЦЭ хватит и этого, иначе будет топик +10 листов ещё
Зачем же учить неправильно. Потом он будет всем рассказывать, что его так учили
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734667
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

Заимейте чисто для прикола папку
D:\Рабочая папка\Пользователь
и сначала не помещайте в неё файлов
затем поместите в неё например один Вордовский файл и т.д.
и открывайте или создавайте документ с шаблона в этом посте
И тогда может поймёте, что за смысл добавлять папку как Вы советуете
якобы чтобы программа заработала ну вероятно бывает такое когда в эту папку надо что то скинуть, но у меня другой случай
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734670
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Не переживайте я же сказал и пробовать не буду
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734671
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,
У меня всё работает. Смотрите по F8
...
Рейтинг: 0 / 0
закрыть файл програмно
    #36734672
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

я ни при каких обстоятельствах не вижу в этом смысла.

А я вижу!!
...
Рейтинг: 0 / 0
25 сообщений из 223, страница 8 из 9
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / закрыть файл програмно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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