Я прочитал файл Excel 2003 с помощью текстового редактора, чтобы увидеть язык разметки.Когда я открываю файл в Excel, он отображает неправильные символы.При проверке файла я вижу, что кодировка - Windows 1252 или что-то подобное.Если я вручную заменю это на UTF-8, мой файл откроется нормально.Хорошо, пока все хорошо, я могу исправить это вручную.
Теперь хитрость в том, что этот файл генерируется автоматически, что мне нужно обрабатывать его автоматически (без участия человека) с ограниченными инструментами на моем рабочем столе (нет Perl или другого языка сценариев).
Есть ли простой способ открыть этот файл XL в VBA с правильной кодировкой (и игнорировать кодировку, указанную в файле)?
Примечание, рабочая книга.ReloadAs не работает для меня, он выдает ошибку (и требует ручного действия, поскольку файл уже открыт).
Или это единственный способ исправить файл, чтобы пройти через некоторые обручи?Либо: введите текст, проверьте строку для кодирования строки, замените при необходимости, запишите каждую строку в новый файл ...;или экспортировать в csv, затем снова импортировать из csv с определенной кодировкой, сохранить как xls?
Любые подсказки приветствуются.
РЕДАКТИРОВАТЬ:
ADODB не работает для меня (XLговорит пользовательский тип, не определенный).
Я решил проблему с помощью обходного пути:
name2 = Replace(name, ".xls", ".txt")
Set wb = Workbooks.Open(name, True, True) ' open read-only
Set ws = wb.Worksheets(1)
ws.SaveAs FileName:=name2, FileFormat:=xlCSV
wb.Close False ' close workbook without saving changes
Set wb = Nothing ' free memory
Workbooks.OpenText FileName:=name2, _
Origin:=65001, _
DataType:=xlDelimited, _
Comma:=True