dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Ошибка "run-time error '53': file not found", в чём может быть причина.

VBA. Ошибка "run-time error '53': file not found", в чём может быть причина.

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 27.07.2017, 16:28 #1
VBA. Ошибка "run-time error '53': file not found", в чём может быть причина.
Jeneva
 
Регистрация: 21.06.2017
Сообщений: 8

Jeneva вне форума Вставить имя

Добрый день.
Есть код VBA (вставка динамического блока), работает на трёх компах, а на четвертом он же выдаёт ошибку "run-time error '53': file not found". Ниже приведён отрывок кода с выделенной красным цветом строкой, которую vba подчёркивает как ошибку. Может кто знает, в чём причина не работы кода на одной из машин? (Я в VBA не силён).

Sub Bon()
Dim returnObj As AcadObject
Dim InPoint As Variant
Dim varAttributes As Variant
Dim blockObj As AcadBlockReference
Dim strAttributes As String
Dim Len1S As String
Dim Len2S As String

'On Error Resume Next
FullPathZ
Open PathZ + "Nadpisi.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, inputdata
If inputdata <> "" Then
UserForm12.ComboBox1.AddItem inputdata
UserForm12.ComboBox2.AddItem inputdata
UserForm12.ComboBox3.AddItem inputdata
End If
Loop
Close #1
.....................
Просмотров: 1221
 
Непрочитано 27.07.2017, 18:13
#2
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,140
Отправить сообщение для maratovich с помощью Skype™


Дык пишет же
file not found
файл не найден.
что такое PathZ ? И с какого перепуга там "+" ? вы текстовую строку суммировать собрались ? используйте "&"
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.07.2017, 19:10
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 34,824


maratovich, насколько я помню, в VBA для строк вполне корректно срабатывает и +, и &.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.07.2017, 21:38
#4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 3,881


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
в VBA для строк вполне корректно срабатывает и +, и &.
да, без разницы.

Цитата:
Сообщение от Jeneva Посмотреть сообщение
Open PathZ + "Nadpisi.txt" For Input As #1
Делаете еще одну переменную строковую, там собираете имя файла и либо просматриваете в отладчике пошагово, либо просто временно вставьте MsgBox. И смотрите результирующее имя файла. И есть ли он на компе вообще. И есть ли права на чтение хотя бы на эту папку.

p.s. Лучше не полагаться, что файл №1 свободный, а использовать:
Код:
[Выделить все]
Dim lNumFile As Integer
lNumFile = FreeFile()
и далее вместо #1 использовать #lNumFile
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 07:48
#5
baksconstructor


 
Регистрация: 05.11.2014
Сообщений: 778


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
насколько я помню, в VBA для строк вполне корректно срабатывает и +, и &.
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
да, без разницы.
Как в том анекдоте.... "Ну да конечно" !
А теперь смотрим и видим что первая часть объявлена как String, а вторая как Long, а между ними стоит"+". И чё мы получим ?
baksconstructor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 07:54
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 34,824


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
А теперь смотрим и видим что первая часть объявлена как String, а вторая как Long
Наверное, с утра пораньше я слепой, но я этого не вижу.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 07:56
#7
baksconstructor


 
Регистрация: 05.11.2014
Сообщений: 778


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Наверное, с утра пораньше я слепой, но я этого не вижу.
Не конкретно в этом примере, а вообще, это должно быть правилом т.к. неизвестно в каком месте это будет применяться.
baksconstructor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 09:30
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 3,881


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Не конкретно в этом примере, а вообще, это должно быть правилом т.к. неизвестно в каком месте это будет применяться.
Прежде чем "удивлять" окружающих своими знаниями - попробовали бы на практике) При попытке осуществления сложения строки и числа при первом же прогоне вылетит ошибка: несоответствие типов.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 09:40
#9
baksconstructor


 
Регистрация: 05.11.2014
Сообщений: 778


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
При попытке осуществления сложения строки и числа при первом же прогоне вылетит ошибка: несоответствие типов.
Посмотрите первый пост автора, он не знает что такое "file not found", а несоответствие типов приведёт его в полный ступор.
baksconstructor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 09:47
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 3,881


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Посмотрите первый пост автора, он не знает что такое "file not found", а несоответствие типов приведёт его в полный ступор.
Во первых, отучайтесь думать и решать за других людей) Во вторых, вы придумали какое свое понятие-правило, что пользоваться исключительно амперсандом для объединения строк, а это является лишь рекомендацией. И выдуманная ситуация про сложение строки и числа отловится при первом же запуске приложения. Т.е. даже новичку-программисту не дадут сделать такую ошибку.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 28.07.2017, 11:45
#11
Jeneva


 
Регистрация: 21.06.2017
Сообщений: 8


Всем спасибо за советы!
Действительно был не правильно указан путь к PathZ, перепрописал верный путь и заработало.
Про несоответствие типов в ступор не привело, мат часть я читал) общие понятия есть, теперь практикой креплю, с этим возникают проблемы, особенно когда код написан человеком, который уже уволился)
Jeneva вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 11:57
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 3,881


Лучше такие вещи типа путей хранить во внешнем текстовом файле (для VBA) - переписывать код под конкретные машины - не самая хорошая идея, имхо)
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 16:08
#13
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 1,441


Конкатенация строк... меня больше оператор Open покорежил (пережиток ДОСовских времен), неужели нельзя нормально сделать?
С проверками и прочими плюшками.
Код:
[Выделить все]
Sub fileRead(ByVal FilePathAndName As String)
    Const OpenFileForReading = 1
    Const OpenFileForWriting = 2
    Const OpenFileForAppending = 8
    Const vbSplitAll = -1
     

    Dim FSO As FileSystemObject
    Dim TextStream As TextStream
    Dim S As String
    Dim FileLines() As String
    Dim FSOFile As File
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FileExists(FilePathAndName) Then
        Set FSOFile = FSO.GetFile(FilePathAndName)
        Set TextStream = FSOFile.OpenAsTextStream(OpenFileForReading)
        Do While Not TextStream.AtEndOfStream
            S = S & TextStream.ReadLine & vbNewLine
        Loop
        TextStream.Close
        FileLines = Split(S, vbNewLine, vbSplitAll, vbTextCompare)
    Else
        MsgBox ("Ошибка. Файл " & FilePathAndNam & "недоступен.")
    End If
End Sub
Boxa на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 16:31
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 3,881


Ну Open - стандартная конструкция языка VBA) Больше тогда уж UserForm12 вызывает дисгармонию - т.е., если человек не удалял пользовательские формы из проекта VBA Акада, то как минимум - еще одиннадцать пользовательских форм с названиями по умолчанию и на каждой из них энное количество контролов с названиями по умолчанию может быть. Тут уже не до Windows Script Host... Но работает же)
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 28.07.2017, 16:51
#15
Jeneva


 
Регистрация: 21.06.2017
Сообщений: 8


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Ну Open - стандартная конструкция языка VBA) Больше тогда уж UserForm12 вызывает дисгармонию - т.е., если человек не удалял пользовательские формы из проекта VBA Акада, то как минимум - еще одиннадцать пользовательских форм с названиями по умолчанию и на каждой из них энное количество контролов с названиями по умолчанию может быть. Тут уже не до Windows Script Host... Но работает же)
Там всего 16 форм и километровый код, под который создано 16 кнопок в AutoCad с вставкой динам блоков, изменение, копированием, сохранением, редактированием и тэ дэ.
Я вырвал кусок, в котором выдавало ошибку....
Jeneva вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 17:02
#16
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 3,881


Цитата:
Сообщение от Jeneva Посмотреть сообщение
Там всего 16 форм и километровый код, под который создано 16 кнопок в AutoCad с вставкой динам блоков, изменение, копированием, сохранением, редактированием и тэ дэ.
такие вещи проще переписать заново порою, чем поддерживать)
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 18:09
#17
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,151
Отправить сообщение для Александр Ривилис с помощью ICQ Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Boxa Посмотреть сообщение
меня больше оператор Open покорежил (пережиток ДОСовских времен), неужели нельзя нормально сделать?
Цитата:
Сообщение от Boxa Посмотреть сообщение
Set FSO = CreateObject("Scripting.FileSystemObject")
Это для домашнего компьютера допустимо. А вот офисе сисадмин запросто может (и должен) запретить Scripting. Так что ...
Александр Ривилис вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2017, 19:08
#18
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 28


http://www.firststeps.ru/vba/excel/r.php?16
- уроки для начинающих.

анализ ошибки: 1)удостоверится, что такой файл в указанном месте существует, 2) что файл не косячный, 3)правильность задания местоположения файла FullPathZ.
CalcProg вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Ошибка "run-time error '53': file not found", в чём может быть причина.

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Продольная рабочая арматура в "холодном (рабочем) шве" - во благо ли это? А может быть это блажь? Тиберий Железобетонные конструкции 8 01.11.2014 18:51
Может ли быть трехслойная кладка на гибких и жестких связях одновременно? Aragorn Конструкции зданий и сооружений 2 16.06.2014 12:00
Какой максимальный катет может быть у сварного шва Т3 прикрепления пластины в тавр к пластине? МишаИнженер Поиск литературы, чертежей, моделей и прочих материалов 27 18.12.2013 00:45
Относительный путь не может быть назначен для внешней ссылки DWG Zets AutoCAD 7 20.04.2013 15:05
Быть может куда-то надо ввести какой-то коэффициент? psik AutoCAD 1 16.01.2007 02:32

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы