Добрый день! Есть текстовый файл с данными Мне необходимо прежде чем вставлять данные на лист проверить его, например по первой строчке. При запуске проверки с помощью 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
Что за переменная 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
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Да? Че-то я не вижу, где эти данные таковыми становятся. Ни массива, ни простого значения данной переменной не назначается(да она даже не объявляется). Т.е. записываете Вы - ничего.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Странно, а у меня данные загружаются на лист без проблем, начиная с ячейки G49 и еще + 200 строчек, но при отключенном операторе If.... А как включаю проверку все - останов...