Ниже приводится макрос, который я записал для проекта, над которым я работаю. Появляется новый текстовый файл, который поступает еженедельно (в этом примере имя файла HMO04102015.txt
), и мне интересно, есть ли способ (возможно, дополнительный макрос, который я могу добавить в код), чтобы я мог вытащить новое еженедельное имя файла и замените его автоматически (возможно, как функция «вытащить последнюю временную метку»). Файлы появляются в тот же день недели, поэтому я знаю, в какой день они придут (если это вообще поможет).Вставить новое имя файла в Excel VBA
Sub textimport()
'
' textimport Macro
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\Employee\Desktop\Test Data\HMO04102015.txt", _
Destination:=Range("$A$1"))
.Name = "HMO04102015"
.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 = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(11, 29, 9, 7, 2, 3, 167, 51, 39, 18)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("F:F").Select
Selection.Delete Shift:=xlToLeft
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("A:A").EntireColumn.AutoFit
Selection.ColumnWidth = 27
Range("B2").Select
End Sub
Благодарим вас за ввод. Да, я бы, вероятно, захотел захватить последний файл, увидев, что несколько файлов размещены в одной папке (например, TestFile04102015, TestFile04172015, TestFile04242015). Вы упомянули, что, чтобы выбрать самый последний файл, мне нужно будет включить DIR fuction. Как мне это сделать (используя имя файла примера TestFile04242015)? Спасибо за вашу помощь! –
Будет ли имя файла всегда иметь последнюю отметку времени? –
Привет, Сиддхарт, да, файл будет иметь то же имя, хотя у каждого файла есть отметка времени (mm-dd-yyy), так что, например, один файл может быть назван TestFile04102015, а следующий файл будет иметь имя TestFile04172015. Все файлы ровно на 7 дней. –