У меня есть подпрограмма для импорта текстового файла с фиксированной шириной в Excel, и это прекрасно работает, если файл содержит только символы ASCII, но не работает, когда файл имеет символы не ASCII. Файл имеет кодировку UTF-8. Когда есть символы не ASCII, они импортируются, как если бы они были несколькими символами, поэтому данные в столбцах справа импортируются неправильно. Как правильно импортировать файл фиксированной ширины, если он может содержать символы не ascii? Первоначально у меня были все поля как xlGeneralFormat, я попытался изменить поля, которые могут содержать символы не ascii, на xlTextFormat, но это никак не повлияло на проблему.
Sub ImportFixedWidth()
Application.Workbooks.OpenText _
Filename:="C:\Temp\Ok File.txt", _
StartRow:=1, _
DataType:=xlFixedWidth, _
FieldInfo:=Array( _
Array(0, xlTextFormat), _
Array(5, xlTextFormat), _
Array(10, xlGeneralFormat), _
Array(17, xlGeneralFormat))
End Sub
Если я изменю файл, значит саб:
Sub ImportFixedWidth()
Application.Workbooks.OpenText _
Filename:="C:\Temp\Issue File.txt", _
StartRow:=1, _
DataType:=xlFixedWidth, _
FieldInfo:=Array( _
Array(0, xlTextFormat), _
Array(5, xlTextFormat), _
Array(10, xlGeneralFormat), _
Array(17, xlGeneralFormat))
End Sub
Ok File.txt:
Text1Text2Number1Number2
applepear 1 2
Foo Bar 3 4
Jane John 4 6
Issue File.txt
Text1Text2Number1Number2
applÉpÉar 1 2
Foo Bar 3 4
Jane John 4 6
Ожидаемый Excel: