#excel #vba #text-to-column
#excel #vba #преобразование текста в столбец
Вопрос:
У меня есть несколько отчетов, извлеченных из Oracle в текстовом файле. Я вставил данные в Excel. Теперь все мои данные находятся в столбце A, и я пытаюсь преобразовать данные в табличную форму. Разделитель в одной ячейке текстового файла равен
--------- ------------- ------------- ---------------------- --------------- --------------------- ---- ------------------ ------------------ ------------------ ------------------
и на основе этого я должен преобразовать свои данные. Я записал начальный номер символа каждого столбца из ячеек B1 в N1. При написании кода VBA я хочу, чтобы vba выбирала длину каждого столбца из этих ячеек, т. е. (от B1 до N1).Ниже приведен мой код. Пожалуйста, помогите мне, где я ошибаюсь?
Sub texttocolumntest3()
Columns("A:A").Select
Range("A8").Activate
Selection.Columns.AutoFit
Selection.TextToColumns Destination:=Range("A:A"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(Range("B1").Value, 1), Array(Range("c1").Value, 1), Array(Range("d1").Value, 1), Array(Range("e1").Value, 1), Array(Range("f1").Value, 1), _
Array(Range("g1").Value, 1), Array(Range("h1").Value, 1), Array(Range("i1").Value, 1), Array(Range("j1").Value, 1), Array(Range("k1").Value, 1), Array(Range("l1").Value, 1), _
Array(Range("m1").Value, 1)), TrailingMinusNumbers:=True
Cells.Select
Range("A11").Activate
Selection.Columns.AutoFit
End Sub
Комментарии:
1. Первым аргументом каждого элемента массива является НЕ длина столбца, скорее Если исходные данные имеют столбцы фиксированной ширины, первый элемент каждого двухэлементного массива указывает начальную позицию символа в столбце (как целое число; 0 (ноль) — первый символ).
2. Вместо вставки данных, почему бы не импортировать их? Данные->Из текста /CSV
3. Если я импортирую данные, Excel по-прежнему просит меня преобразовать данные в таблицы, и откроется диалоговое окно «Текст в столбец». Итак, я хочу очистить все данные и преобразовать в таблицу одним щелчком мыши с помощью VBA.