Я запускаю макрос, который автоматически берет CSV-файлы и импортирует их в определенные таблицы в моей книге. Тем не менее, я хотел бы добавить большую гибкость, позволяя пользователю выбирать файлы для импорта, а не делать так, чтобы макрос автоматически захватывал файлы csv, потому что имя может измениться, как и каталог. Я новичок в VBA и пытаюсь лучше понять MsoFileDialogType и GetOpenFilename, но с трудом пытаюсь понять концепцию / реализацию в моем коде.
В конечном итоге я хочу, чтобы пользователь нажал кнопку на интерфейсе рабочей книги. Вам будет предложено выбрать первый CSV-файл для импорта. Этот CSV-файл будет импортирован в рабочую таблицу с предварительно заданным именем в рабочей книге temp1. Однако, поскольку файлы данных идут парами, я хочу, чтобы пользователь мог выбрать следующий CSV-файл после первого в temp2.
Что у меня сейчас есть:
Worksheets.Add
ActiveSheet.Name = "temp1"
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;MAC Directory path here" _
, Destination:=Range("A1"))
.Name = "temp 1 03.02.12"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMacintosh
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1)
.Refresh BackgroundQuery:=False
.UseListObject = False
End With
ActiveSheet.Move after:=Worksheets(Worksheets.Count)
Спасибо.