У меня есть код для копирования всей информации из txt-файла и размещения его в xlsm-файле, разделяя его на определенное количество строк, а затем продолжая на следующем листе (txt-файл содержит более 2 миллионов строк).
У меня проблема в том, что он не копирует первые 700 000 строк, но копирует остальные, также на первом листе он вставляет туда китайский. Я не уверен, имеет ли это какое-то отношение к информации, поступающей из txt-файла.Может кто-нибудь указать, где я ошибся?
Sub SplitTxt_01()
Const HelperFile As String = "ABCD"
Const N As Long = 699998
Dim myPath
myPath = "D:\Test\"
Dim myFile
myFile = "20181129_EXPORT_RESULTS.txt"
Dim WB As Workbook, myWB As Workbook
Set myWB = ThisWorkbook
Dim myWS As Worksheet
Dim t As Long, r As Long
Dim myStr
Application.ScreenUpdating = False
myFile = Dir(myPath & myFile)
Open myPath & myFile For Input As #1
t = 1
r = 1
Do While Not EOF(1)
Line Input #1, myStr
If r > N Then
t = t + 1
r = 1
End If
Open myPath & HelperFile & t & ".txt" For Append As #2
Print #2, myStr
Close #2
r = r + 1
Loop
Close #1
For i = t To 1 Step -1
Workbooks.OpenText Filename:=myPath & HelperFile & i & ".txt", DataType:=xlDelimited, Tab:=True
Set WB = ActiveWorkbook
Set Rng = ActiveSheet.UsedRange
Set myWS = myWB.Sheets.Add
myWS.Name = HelperFile & i
Rng.Copy myWS.Cells(1, 1)
WB.Close False
Next
myWB.Save
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fldr = Fso.GetFolder(myPath)
For Each Filename In Fldr.Files
If Filename Like "*" & HelperFile & "*" Then Filename.Delete
Next
Application.ScreenUpdating = True
End Sub