1

Я использую файл CSV (созданный программой сторонних разработчиков) в качестве внешнего источника данных, и я хотел бы изменить его путь из макроса ... Как я могу это сделать ?

Другим приемлемым ответом на мою проблему может быть способ указать путь относительно файла Excel - не нашел как - учитывая, что в моем случае и csv, и xls находятся в одном каталоге.

1 ответ1

1
Sub Import()
    Dim FilePath As String
    FilePath = "TEXT;C:\directory\" & Cells(1, 1).Value
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=FilePath, Destination:=Range("$A$1"))
        .Name = "Book1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

End Sub

Это создаст новый лист с данными, когда вы поместите файл (например, book3.csv) в sheet1 A1; Вы изменяете каталог C:\ на каталог, в котором существует ваш ввод, и вы можете изменить диапазон вывода в строке 5 "Диапазон"

Кроме того, в строке 3 "Ячейки (1,1) указана входная ячейка, поэтому вы можете изменить ее с Листа А1, если хотите. Вам нужно указать расширение файла в ячейке ссылки, иначе он не будет знать, какой файл импортировать. Просто запустите этот макрос, и вы получите новый лист с целевыми данными. Если вам нужна новая рабочая тетрадь или для нее, чтобы вставить ее в существующий лист, дайте мне знать.

Кроме того, если вы посмотрите на свойства, это файл с разделителями-запятыми, вы можете изменить его или просто записать свой собственный макрос (вкладка разработчика -> запись макроса) и вставить команды типа FilePath вверху и изменить команду подключения

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .