Преобразование данных текстового формата в столбцах с помощью Excel VBA

#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.