Я пытаюсь написать программу, которая берет данные из одного файла, анализирует их и печатает во второй файл. Сначала я открываю первый файл с помощью объекта диалогового окна «Файл», но затем при попытке выбрать файл для сохранения, так как моя программа падает.
Set fd = Application.FileDialog(msoFileDialogFilePicker)
lblContinue:
With fd
.AllowMultiSelect = False
.Title = "Select a file to edit."
.InitialFileName = "C:\Program Files (x86)\AceCooler32\aceuser\"
End With
If fd.Show <> 0 Then
sFileName = fd.SelectedItems(1)
End If
If sFileName = "" Then Exit Sub
sFileName2 = Application.GetSaveAsFilename(, , , "Save File As: ")
Open sFileName For Input As #1
Debug.Print sFileName
Debug.Print sFileName2
On Error GoTo lblError:
Open sFileName2 For Output As #2
Меня поразило то, что Debug.print для sFileName2 показывает правильное имя для выбранного мной файла, но затем выдает ошибку и вылетает из программы. Добавлен оператор on error, поэтому мне не нужно было принудительно уничтожать Excel каждый раз, когда я тестировал код. Текст ошибки или всплывающее окно не отображаются, просто зависает Excel.
Вот мой код ошибки On:
' Resume
On Error GoTo -1
On Error GoTo lblError2:
Debug.Print Err.Description
Debug.Print Err.HelpContext
MsgBox ("You must save using a different filename." & Err.Description)
Close #1
Close #2
GoTo lblContinue:
Описание, данное в Err.Description, пусто