Страницы: 1
RSS
Использование окна выбора файла для использования пути к методу QueryTables.Add
 
Здравствуйте

Необходимо для метода QueryTables.Add  вместо "D:\TestTableQuery\testfile.csv" (в vba коде указана переменная filePathCSV  ) задать вызов диалогового окна "импорт текстового файла"
в котором пользователь будет выбирать файл для импорта данных, а значение пути будет присвоенно переменной или использована непосредственно в теле объекта QueryTables ? Важно в будующем
иметь доступ к пути D:\TestTableQuery\ и имени файла testfile.csv . Подскажите пожалуйста как правильно это реализовать?
Код
Sub TestTableQuery3()
'смена текущего каталога на :
    ChDir "D:\"

' Создание нового листа
    Workbooks.Add

'?????????????????   Как вместо "D:\TestTableQuery\testfile.csv" задать вызов диалогового окна "импорт текстового файла"
'                    в котором пользователь будет выбирать файл для импорта данных, а значение пути будет присвоенно переменной или использована непосредственно в
'                    теле объекта QueryTables ?

'                             vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
Const filePathCSV As String = "D:\TestTableQuery\testfile.csv"

'????????????????? Коректно ли использовать такой код : Const filePathCSV As String = Application.GetOpenFilename

'????????????????? Правильных ли являеться две строки, что ниже:

  With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT; & filePathCSV", Destination:=Range("$A$1"))

'       .CommandType = 0
'?????   vvvvvvvvvvvvvvvvvvvvv     .Name = "testfile.csv" обязательно ли использовать   ?
        .Name = "testfile.csv"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
Изменено: vikttur - 20.09.2021 21:47:43
 
Диалоговое окно выбора файлов/папки
Код
dim sf
sf = Application.GetOpenFilename("CSV files(*.csv),*.csv", 1, "Выбрать файл CSV", , False)
If VarType(sf) = vbBoolean Then
    Exit Sub
End If
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sf, Destination:=Range("$A$1"))
Изменено: Дмитрий(The_Prist) Щербаков - 21.09.2021 08:04:49
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,Спасибо.  Работает.

Не работало у меня изза того что сделать ошибку в коде
Страницы: 1
Наверх