Страницы: 1
RSS
Макрос передачи переменной в путь
 
Задача следующая:

При запуске макроса в всплывающем окне требуется ввести "имя нужной папки". Как только вводим это имя
на локальном диске D:\Temp_\var_par" \
попадаем в нужную нам папку и читаем в ней файл "par.txt" и заносим его результат в excel  в ячейку А1
Далее в зависимости что введено ссылаемся на файл

Вот что сделал.
Код
Sub Param()
    Dim Par As String
    Par = Application.InputBox("Input folder name")
    
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;D:\Temp_\var_par" \ Par \ "par.txt", Destination:=Range( _
        "$A$1"))
        .Name = "Par"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1251
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    
    Columns("A:A").EntireColumn.AutoFit
End Sub
 
А вопрос в чём?
 
Вопрос в том, что не работает. Или синтаксис неверный или вообще нельзя так передавать имя переменной в путь
 
отличный пример, как раз по сути задачи
в нем 25 строк настроек запроса
и 2 строки "передачи переменной в путь"
а где тут проблема, которую нужно решать?
а то, что умеете пользоваться рекордером - это похвально
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
вместо
Код
"TEXT;D:\Temp_\var_par" \ Par \ "par.txt"

попробуйте
Код
"TEXT;D:\Temp_\var_par\" & Par & "\par.txt"
 
а так?
"TEXT;D:\Temp_\var_par\" & Par & "\par.txt"

название темы:
внедрить переменную в текст
Изменено: Ігор Гончаренко - 17.11.2019 23:13:20
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Может я плохо поясняю. Вот интересующий меня фрагмент пути:

"TEXT;D:\Temp_\var_par" \ Par \ "par.txt", Destination:=Range( _
"$A$1"))

По сути файл par.txt находится во многих папках на D:\Temp_\var_par" \01_1 или 02_1 или 03_1 или т.д.
и в зависимости, что мы введем в всплывающем окне, попадаем туда, куда надо и записываем результат par.txt в ячейку А1.
 
Всем спасибо. Вопрос решен
 
ParK, \ operator
Всуньте вы его уже в кавычки и будет вам щастье
 
А вызвать диалог выбора папки/файла - не вариант?
 
Может быть вызвать и хорошо, но точно не по силам мне, как новичку))
 
Почитайте эту статью
 
Спасибо
 
В случае импорта текста диалог выбора файла предусмотрен штатно. Замените в #1 в строке 19 False на True. Папку тоже можно будет поменять.
Владимир
Страницы: 1
Наверх