Страницы: 1
RSS
Ошибка проверки данных при чтении текстового файла
 
Добрый день!
Есть текстовый файл с данными
Мне необходимо прежде чем вставлять данные на лист проверить его, например по первой строчке.
При запуске проверки с помощью If - программа перестает отвечать и все время выдает сообщение об ошибке проверки ключа
Где ошибка в коде? Может кто поправит
Интересно что при отключении Оператора If...Else...End If все работает и данные прекрасно загружаются
 :(  
Код
Sub Открыть_урок()
    Dim MyPath As String
    Dim SaveDriveDir As String
    SaveDriveDir = CurDir
    MyPath = "C:\"
    ChDrive MyPath
    ChDir MyPath
    On Error Resume Next
    FOpen = Application.GetOpenFilename(FileFilter:="Text Files (*.txt), *.txt")
    If VarType(FOpen) = vbBoolean Then Exit Sub
Application.ScreenUpdating = False
    Range("G49").Select
    Set ImpRng = ActiveCell
    Open FOpen For Input As #1
    Dim s As String
    Input #1, s
    'If s = "XX#1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16" Then
    Range("G49").Value = s
    r = 1
    Do Until EOF(1)
        Line Input #1, data
        ActiveCell.Offset(r, 0) = data
        r = r + 1
    Loop
    Close #1
Application.ScreenUpdating = True
    'Else: MsgBox "Файл не прошел проверку ключа!    " & vbNewLine & "Выберите другой файл", vbInformation, "Ошибка в данных"
    'Exit Sub
'End If
End Sub
Изменено: Vrajadas - 21.07.2013 13:06:54
 
Что за переменная Data? Может имелась ввиду текущая дата - Date?
У меня такой код отрабатывает нормально:
Option Explicit

Код
Sub Открыть_урок()
    Dim MyPath As String, FOpen, s As String, ImpRng As Range, r
    Dim SaveDriveDir As String
    SaveDriveDir = CurDir
    MyPath = "C:\"
    ChDrive MyPath
    ChDir MyPath
    On Error Resume Next
    FOpen = Application.GetOpenFilename(FileFilter:="Text Files (*.txt), *.txt")
    If VarType(FOpen) = vbBoolean Then Exit Sub
Application.ScreenUpdating = False
    Range("G49").Select
    Set ImpRng = ActiveCell
    Open FOpen For Input As #1
    Input #1, s
    If s = "XX#1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16" Then
    Range("G49").Value = s
    r = 1
    Do Until EOF(1)
        s = Format(Date, "dd.mm.yyyy")
        Line Input #1, s
        ActiveCell.Offset(r, 0) = Date
        r = r + 1
    Loop
    Close #1
Application.ScreenUpdating = True
    Else: MsgBox "Файл не прошел проверку ключа!    " & vbNewLine & "Выберите другой файл", vbInformation, "Ошибка в данных"
    Exit Sub
End If
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Нет дата вроде не присутствует...data - это просто данные...
 
Цитата
Vrajadas пишет:
data - это просто данные...
Да? Че-то я не вижу, где эти данные таковыми становятся. Ни массива, ни простого значения данной переменной не назначается(да она даже не объявляется). Т.е. записываете Вы - ничего.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Странно, а у меня данные загружаются на лист без проблем, начиная с ячейки G49 и еще + 200 строчек, но  при отключенном операторе If.... А как включаю проверку все - останов...
Страницы: 1
Наверх