получить полный путь к файлу
Добавлено: 26 окт 2009, 17:51
Подскажите пожалуйста где ошибка в следующем коде
Sub открыть()
Dim Filt As String
Dim FilterIndex As String
Dim FileName As Variant
Dim Title As String
'Настройка списка фильтра
Filt = "Текстовые файлы(*.txt),*.txt"
FileIndex = 1
'Заголовок окна
Title = "Выбирите импортируемый файл"
'Получение имени файла
FileName = Application.GetOpenFilename _
(FileFilter:=Filt, FilterIndex:=FilterIndex, _
Title:=Title)
'При отмене выйти из окна
If FileName = False Then
MsgBox "Вы не выбрали файл"
Exit Sub
End If
'Отображение полного пути файла
MsgBox "Вы выбрали" & FileName
End Sub
при выполнении выдает код ошибки 13 type mismatch
и как лучше добавить полученный путь в следующий макрос
Sub импорт()
Dim strLine As String ' Одна строка файла
Dim strCurChar As String * 1 ' Анализируемый символ строки файла
Dim strValue As String ' Значение для записи в ячейку
Dim lngRow As Long ' Номер текущей строки
Dim intCol As Integer ' Номер текущего столбца
Dim i As Integer
Open "C:\Documents and Settings\All Users\Документы\коорд.txt" For Input As #1
Do Until EOF(1)
' Считываем строку из файла
Line Input #1, strLine
Range("D3").Activate
' Разбираем считанную строку
For i = 22 To Len(strLine)
strCurChar = Mid(strLine, i, 1)
If strCurChar = Chr(88) Then
' Найден разделитель столбцов - "Х". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol + 1
strValue = ""
ElseIf strCurChar = Chr(89) Then
' Найден разделитель столбцов - "Y". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol - 1
strValue = ""
ElseIf strCurChar = Chr(90) Then
' Найден разделитель столбцов - "Z". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol - 1
strValue = ""
ElseIf strCurChar = Chr(61) Then
' Найден разделитель столбцов - "=". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol
strValue = ""
ElseIf i = Len(strLine) Then
' Конец строки - запишем в таблицу последнее _
значение в строке (перед этим дополним его последним _
символом строки, кроме кавычки)
If strCurChar <> Chr(32) Then
strValue = strValue & strCurChar
End If
' Запись в таблицу
Range("D3").Activate
ActiveCell.Offset(lngRow, intCol) = strValue
strValue = ""
ElseIf strCurChar <> Chr(32) Then
' Добавление символа в формируемое значение ячейки _
(кавычки игнорируются)
strValue = strValue & strCurChar
End If
Next i
' Переход к новой строке таблицы
intCol = 0
lngRow = lngRow + 1
Loop
' Закрываем файл
Close #1
End Sub
заранее благодарен
Sub открыть()
Dim Filt As String
Dim FilterIndex As String
Dim FileName As Variant
Dim Title As String
'Настройка списка фильтра
Filt = "Текстовые файлы(*.txt),*.txt"
FileIndex = 1
'Заголовок окна
Title = "Выбирите импортируемый файл"
'Получение имени файла
FileName = Application.GetOpenFilename _
(FileFilter:=Filt, FilterIndex:=FilterIndex, _
Title:=Title)
'При отмене выйти из окна
If FileName = False Then
MsgBox "Вы не выбрали файл"
Exit Sub
End If
'Отображение полного пути файла
MsgBox "Вы выбрали" & FileName
End Sub
при выполнении выдает код ошибки 13 type mismatch
и как лучше добавить полученный путь в следующий макрос
Sub импорт()
Dim strLine As String ' Одна строка файла
Dim strCurChar As String * 1 ' Анализируемый символ строки файла
Dim strValue As String ' Значение для записи в ячейку
Dim lngRow As Long ' Номер текущей строки
Dim intCol As Integer ' Номер текущего столбца
Dim i As Integer
Open "C:\Documents and Settings\All Users\Документы\коорд.txt" For Input As #1
Do Until EOF(1)
' Считываем строку из файла
Line Input #1, strLine
Range("D3").Activate
' Разбираем считанную строку
For i = 22 To Len(strLine)
strCurChar = Mid(strLine, i, 1)
If strCurChar = Chr(88) Then
' Найден разделитель столбцов - "Х". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol + 1
strValue = ""
ElseIf strCurChar = Chr(89) Then
' Найден разделитель столбцов - "Y". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol - 1
strValue = ""
ElseIf strCurChar = Chr(90) Then
' Найден разделитель столбцов - "Z". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol - 1
strValue = ""
ElseIf strCurChar = Chr(61) Then
' Найден разделитель столбцов - "=". Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol
strValue = ""
ElseIf i = Len(strLine) Then
' Конец строки - запишем в таблицу последнее _
значение в строке (перед этим дополним его последним _
символом строки, кроме кавычки)
If strCurChar <> Chr(32) Then
strValue = strValue & strCurChar
End If
' Запись в таблицу
Range("D3").Activate
ActiveCell.Offset(lngRow, intCol) = strValue
strValue = ""
ElseIf strCurChar <> Chr(32) Then
' Добавление символа в формируемое значение ячейки _
(кавычки игнорируются)
strValue = strValue & strCurChar
End If
Next i
' Переход к новой строке таблицы
intCol = 0
lngRow = lngRow + 1
Loop
' Закрываем файл
Close #1
End Sub
заранее благодарен