Я получаю файлы при случае в фиксированном формате ширины. Я должен импортировать их в Excel, но Excel отлично не забирает столбцы. Я могу сделать это вручную каждый раз с текстовым Мастером Импорта, но я задаюсь вопросом, существует ли способ создать "текстовый шаблон импорта" или что-то подобное - так как эти файлы всегда являются тем же форматом.
При записи макроса (Инструменты - Макрос - Рекордный Новый Макрос) при открытии файла Вы получите параметры, необходимо использовать метод OpenText. Вот пример
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\dick\My Documents\actsynclog.txt", Origin:=437, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(8, _
1), Array(31, 1), Array(41, 1), Array(57, 1), Array(77, 1), Array(80, 1), Array(82, 1), _
Array(84, 1), Array(86, 1)), TrailingMinusNumbers:=True
Аргументом FieldInfo является тот, о котором Вы заботитесь. Это - массив 2-х массивов. Первый элемент является столбцом, и вторым является тип данных. Этот пример разделяет текстовый файл в следующих столбцах: 0, 8, 31, 41, 57, 77, 80, 82, 84, и 86.
С этим Вы можно записать макрос для открытия текстового файла. См. метод GetOpenFileName Объекта приложения для того, как выбрать который файл открыться.
Если Вы соглашаетесь с некоторыми Perl
программирование,
существует модуль электронной таблицы, который поддерживает WriteExcel.
Я использовал это ранее, чтобы сделать инверсию того, что Вы хотите - преобразовывают файл Excel в формат CSV,
Я использовал ReadExcel
для этого.
Смотрите на примеры в WriteExcel
свяжитесь здесь и другие ссылки для XLS-CSV по тому вопросу, Вы могли бы найти что-то, что работает на Вас между двумя.