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 вверху и изменить команду подключения