Я делаю аналогичную вещь, вот мой саб для этого:
Я открываю текстовый файл с |
в качестве разделителя.Затем скопируйте содержимое листа в мою целевую книгу (глобальная переменная).Затем я закрываю первую книгу, содержащую исходный текстовый файл, без сохранения.
Код для Workbooks.OpenText в основном записывает макрос и адаптирует его к моим потребностям.
Sub ImportTextFile(path As String)
Dim SheetName As String
Dim TMPWorkBook As Workbook
Dim FilePath As String
Dim TxtFilePath As String
Dim TxtFileName As String
Set WB = ThisWorkbook
SheetName = "Test_Result"
TxtFileName = path & "file.txt"
Workbooks.OpenText FileName:= _
TxtFileName _
, Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1), _
Array(2, 1)), DecimalSeparator:=".", ThousandsSeparator:=",", _
TrailingMinusNumbers:=True
Set TMPWorkBook = ActiveWorkbook
TMPWorkBook.Sheets("file").Select
Cells.Select
Selection.Copy
ResultWB.Activate
ResultWB.Sheets(SheetName).Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Cells.Select
Cells.EntireColumn.AutoFit
ActiveSheet.Range("A1").Select
TMPWorkBook.Close savechanges:=False
End Sub