Я работаю над макросом, чтобы импортировать текстовые файлы в рабочий лист. Я записал макрос и немного скорректировал код в соответствии с моими потребностями. Мне нужно сделать это для нескольких файлов, поэтому я скопировал и вставил код в другие макросы, и у меня возникла проблема. Первая итерация отлично работает, но когда я запускаю вторую, она перемещает исходные данные, которые я импортировал по нескольким столбцам справа, начиная с столбца АА, и отправляет следующую партию данных в столбце А, где она должна быть, но намного ниже в строке с последней строкой данных из первой партии. Может ли кто-нибудь предположить, почему это не просто добавление новых данных ниже последней строки из предыдущей итерации? Вот мой код. (отредактировано). Я изменил код, вставленный во вторую итерацию, которая показывает последнюю строку строки, в отличие от первой строки, жестко закодированной.VBA импортирует несколько текстовых файлов. Сохраняет данные перемещения
Sub Upload2()
row = ThisWorkbook.Sheets("Data Dump").Cells(Rows.Count, 1).End(xlUp).row
filepath = Worksheets("Upload").Cells(5, "H")
Worksheets("Data Dump").Activate
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" + filepath, Destination:=Cells(row, "A"))
'.CommandType = 0
.Name = "bench test"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.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, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Dim Cn As Variant
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Cn In ThisWorkbook.Connections
Cn.Delete
Next Cn
For Each Cn In ActiveSheet.QueryTables
Cn.Delete
Next Cn
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Благодаря Макс
См. Пересмотренный ответ после публикации кода с указанием ошибки ... – EEM
Вы пробовали ответ? – EEM