У меня простенькая процедура с проверкой наличия файла в папке:
Public Sub КонтрольВходной()
Dim имя As String
Dim s As String
имя = "C:\Windows\Sha.doc"
s = Dir(имя)
If s <> "" Then ..... и т.д.
Так вот, не работает команда Dir. Возвращает пустое значение. Что только не делал - ничего не помогает. (Я только что переустановил Винду, офис..). Естественно, раньше все работало. Да мало того, на другом компе все работает.
Где что сломалось? - не пойму. Может у кого такое было?
Глюк в VBA?
Модератор: Naeel Maqsudov
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте Иванов.
формулировка "Возвращает пустое значение" не совсем корректна, конструкция:
s = Dir(имя)
может присваивать переменной s или имя файла "Sha.doc" если путь его расположения указан верно (существует), или строку нулевой длины (не существует).
Причина возникновения таких "проблем" в большинстве случаев -, потеря связи с используемой библиотекой. Проверьте, меню Tools / References... и отключите ссылку с сообщением MISSING.
Думаю у Вас всё получится.
Евгений.
формулировка "Возвращает пустое значение" не совсем корректна, конструкция:
s = Dir(имя)
может присваивать переменной s или имя файла "Sha.doc" если путь его расположения указан верно (существует), или строку нулевой длины (не существует).
Причина возникновения таких "проблем" в большинстве случаев -, потеря связи с используемой библиотекой. Проверьте, меню Tools / References... и отключите ссылку с сообщением MISSING.
Думаю у Вас всё получится.
Евгений.
Спасибо,Евгений за ответ. Я уж думал, останусь наедине с моей бякой.
Tools/references конечно проверял. Все нужные библиотеки подключены.
Только где и когда мне смотреть "missing"? В Reference после исполнения этой функции? Я такого там никогда не видел.
Tools/references конечно проверял. Все нужные библиотеки подключены.
Только где и когда мне смотреть "missing"? В Reference после исполнения этой функции? Я такого там никогда не видел.
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Откройте в редакторе VBA меню Tools / References...
Если в одной из выбранных строк есть слово MISSING (потеря) отключите эту строку, и счастье придет к Вам.
Случай с некорректной строкой отображающей путь "C:\Windows\Sha.doc" рассматривать не стоит, хотя не исключено применение кириллических символов подобного начертания (случаи были)
Евгений.
Если в одной из выбранных строк есть слово MISSING (потеря) отключите эту строку, и счастье придет к Вам.
Случай с некорректной строкой отображающей путь "C:\Windows\Sha.doc" рассматривать не стоит, хотя не исключено применение кириллических символов подобного начертания (случаи были)
Евгений.
Случай с кириллицей не надо рассматривать, поскольку программа перестала работать после переустановки системы.
Я только не пойму, что это за missing? Поясните. Неужели VBA проводит диагностику подключенных библиотек? Missing - пропущена библиотека и её надо отключить? Как это? Чего-то я не врубаюсь.
Я только не пойму, что это за missing? Поясните. Неужели VBA проводит диагностику подключенных библиотек? Missing - пропущена библиотека и её надо отключить? Как это? Чего-то я не врубаюсь.
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
для тех кто на бронепоезде:
MISSING - не пропущена библиотека, а потеряна связь с библиотекой.
К проекту VBA подключаются дополнительные библиотеки зарегистрированные в системе. "после переустановки системы" не все библиотеки на которые есть ссылка в проекте были установлены сообщение MISSING (потеря связи) говорит именно об этом.
Для работоспособности проекта, все связи и неиспользуемые в том числе, должны быть корректны. Вы не обратите внимание на автобусный билет в кармане если не будет автобуса сядете на трамвай и уедете, в проекте всё гораздо жестче если есть билет на автобус - будем ждать автобус, а если рейс отменен - катастрофа.
Надеюсь объяснение понятно.
Евгений.
MISSING - не пропущена библиотека, а потеряна связь с библиотекой.
К проекту VBA подключаются дополнительные библиотеки зарегистрированные в системе. "после переустановки системы" не все библиотеки на которые есть ссылка в проекте были установлены сообщение MISSING (потеря связи) говорит именно об этом.
Для работоспособности проекта, все связи и неиспользуемые в том числе, должны быть корректны. Вы не обратите внимание на автобусный билет в кармане если не будет автобуса сядете на трамвай и уедете, в проекте всё гораздо жестче если есть билет на автобус - будем ждать автобус, а если рейс отменен - катастрофа.
Надеюсь объяснение понятно.
Евгений.
Все решилось просто. Прошу прощения, что ввел Вас в заблуждение. Этого файла действительно не было в папке. Глюка в VBA нет.