Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
2 / 2 / 0
Регистрация: 29.08.2017
Сообщений: 13
1

Ошибка: file already open (VBA)

13.10.2017, 00:35. Показов 2329. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток многоуважаемые форумчане!
Я конечно понимаю уже существуют похожие темы, вроде написан код правильно и команду Close #1 предусмотрел в конце цикла, но все равно компилируется Ошибка: file already open.
В чем дело не понятно((((???
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub DoWhileDemol()
Dim LineCt As Long
Dim LineOfText As String
Open "F:\.........\text01.txt" For Input As #1
LineCt = 0
Do While Not EOF(l)
Line Input #1, LineOfText
Range("Al").Offset(LineCt, 0) = UCase(LineOfText)
LineCt = LineCt + 1
Loop
Close #1
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2017, 00:35
Ответы с готовыми решениями:

Ошибка: File already open (VB 6)
Здравствуйте форумчане! Есть лабораторная университетская, задание таково: добавить в файл имя...

Ошибка fatal error C1083: Cannot open include file: ***: No such file or directory
Помогите пожалуйста исправить ошибку. При компиляции возникает вот такая беда. подробности в...

Ошибка fatal error C1083: Cannot open include file: 'd3d8.h': No such file or directory
Всем добрый вечер! У меня возникает ошибки при компиляции файла. Подробности в скриншотах. ...

Вылетает ошибка! Warning: file_get_contents(main.tpl) [function.file-get-contents]: failed to open stream: No such file or directory in /home/u6958797
В чем может быть проблема <?php require_once "config_class.php"; require_once...

9
Эксперт MS Access
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
13.10.2017, 00:55 2
Ошибка здесь: Do While Not EOF(l). Надо: Do While Not EOF(1)
0
2 / 2 / 0
Регистрация: 29.08.2017
Сообщений: 13
13.10.2017, 01:30  [ТС] 3
mobile,
Do While Not EOF(l). Надо: Do While Not EOF(1) - Исправил косяк,
Но ошибка все равно никуда не пропала
0
Модератор
Эксперт MS Access
12080 / 4940 / 791
Регистрация: 07.08.2010
Сообщений: 14,492
Записей в блоге: 4
13.10.2017, 06:46 4
может ваш файл уже открыт в другой версии вашей процедуры(без строки ckjse #1) или в блокноте
попробуйте добавить строку
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub DoWhileDemol()
Dim LineCt As Long
Dim LineOfText As String
''''''''''
reset
 
Open "F:\.........\text01.txt" For Input As #1
LineCt = 0
Do While Not EOF(l)
Line Input #1, LineOfText
Range("Al").Offset(LineCt, 0) = UCase(LineOfText)
LineCt = LineCt + 1
Loop
Close #1
End Sub
1
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
13.10.2017, 07:11 5
Используйте функцию FreeFile

Функция FreeFile

FreeFile([RangeNumber])

Функция FreeFile используется для возвращения незанятого номера(не задействованного для открытия другого файла) файла, который можно использовать при открытии файла инструкцией Open. Рекомендуется всегда использовать эту функцию при открытии файла во избежание различных проблем
Возвращаемое значение

Возвращает значение типа Integer в диапазоне от 1 до 511, представляющее следующий номер файла, доступный для использования с инструкцией Open
Параметры

RangeNumber

Необязательный аргумент типа Variant, указывающим диапазон, из которого возвращается следующий свободный номер файла. Значение 0 (используется по умолчанию) задает возвращение номера файла из диапазона 1 – 255 включительно. Значение 1 задает возвращение номера файла из диапазона 256 – 511

Пример

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
' Используем функцию FreeFile
' для определения следующего свободного номера файла
' В цикле последовательно открываются для вывода данных
' пять файлов, в каждый из которых записываются
' некоторые данные
Dim MyIndex, FileNumber
For MyIndex = 1 To 5 ' Выполняет цикл 5 раз
 FileNumber = FreeFile ' Определяем свободный номер файла
' Создаем файл
 Open "TEST" & MyIndex For Output As #FileNumber 
 Write #FileNumber, "Пример." ' выводим текст
 Close #FileNumber ' закрываем файл
Next MyIndex
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
13.10.2017, 08:07 6
daggg, не уверен, что freefile поможет. у меня открыто много файлов, фри выдает 1. Поэтому не будет проверки на уже существующий файл. Для своих программ я написал такую функцию для проверки существования файла. Sname строка с именем файла. Истина, если уже загружен, иначе Ложь

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function IsWbExist(Sname As String) As Boolean
Dim W As Object
IsWbExist = True
On Error GoTo WbFal
Set W = Workbooks(Sname)
GoTo Final
WbFal:
IsWbExist = False
Final:
On Error GoTo 0
End Function
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
13.10.2017, 08:13 7
Цитата Сообщение от Burk Посмотреть сообщение
фри выдает 1
Вы не о тех файлах пишите.
Речь идет только о файлах открытых инструкцией Open
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
13.10.2017, 08:14 8
daggg, да и открывать, если его нет, нужно без #Number. Sname без полного пути к файлу, только его имя
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
13.10.2017, 08:20 9
Цитата Сообщение от Burk Посмотреть сообщение
открывать, если его нет, нужно без #Number
Не понял, если честно. Можете пояснить?

Добавлено через 3 минуты
Короче
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub DoWhileDemol()
Dim LineCt As Long, ff as integer
Dim LineOfText As String
ff=FreeFile
Open "F:\.........\text01.txt" For Input As #ff
LineCt = 0
Do While Not EOF(ff)
Line Input #ff, LineOfText
Range("A1").Offset(LineCt, 0) = UCase(LineOfText)
LineCt = LineCt + 1
Loop
Close #ff
End Sub
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
13.10.2017, 09:52 10
SoftIce, я пишу только о файлах, которые у меня открыты инструкцией Open
0
13.10.2017, 09:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2017, 09:52
Помогаю со студенческими работами здесь

Ошибка при "сборке" Cannot open include file: 'stdafx.h': No such file or directory
Я полный ноль в C++=( Вот код:#include "stdafx.h" #include <stdio.h> #include <windows.h> ...

Maya APi, ошибка "Cannot open include file. No such file or directory"
Помогите плз кто знает искал не нашол решения. ...

Ошибка File not open
procedure TForm1.MenuItem7Click(Sender: TObject); //Работа А (Выбор по маске) var n:integer; ...

Ошибка Unable to open file
Добрый день. Недавно начал изучать С++. Мне интересна библиотека SFML. Так вот при создании...

Ошибка: Can't open resource file
пишет такую ошибку Error: Can't open resource file "C:\Users\????????\Desktop\7.13\Unit1.dfm"...

Программирование с OpenMP и ошибка Cannot open file
Здравствуйте. Недавно начал изучать параллельные вычисления, написал прогу и вылезла ошибка: Cannot...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru