Текст VBA у стовпці

Цей підручник покаже вам, як перетворити рядок тексту в одній клітинці у кілька стовпців за допомогою методу Range TextToColumns у VBA

Текст у стовпці

The Діапазон.TextToColumns method у VBA - це потужний інструмент для очищення даних, імпортованих, наприклад, з текстових або CSV -файлів.

Розглянемо наступний аркуш.

Дані надходять до Excel усі в одному стовпці та розділяються лапками.

Ви можете використовувати метод Range TextToColumns, щоб розділити ці дані на стовпці.

Синтаксис TextToColumns

вираз.TextToColumns (Пункт призначення, Тип даних, TextQualifier, Послідовний розмежувач, Вкладка, Крапка з комою, Кома, Космос, Інший, ІншеЧар, FieldInfo, DecimalSeparator, ThousandsSeparator, КінцевіМінусові Номери)

Вираз

Це діапазон клітинок, які потрібно розділити - наприклад: Діапазон (“A1: A23”).

Усі аргументи в методі TextToColumns є необов’язковими (вони мають квадратні дужки навколо них).

Пункт призначення

Там, де ви хочете розмістити результат - часто ви замінюєте дані та розділяєте їх в одному місці.

Тип даних

Тип аналізу тексту, який ви використовуєте - він може бути будь -яким xlDelimited (за замовчуванням, якщо пропущено), або xlFixedWidth.

TextQualifier

Якщо навколо кожного поля в тексті, який ви розбиваєте, є лапки (одинарні чи подвійні), потрібно вказати, чи є вони одинарними чи подвійними.

Послідовний розмежувач

Це або правда, або хибність і говорить VBA розглянути разом 2 однакових роздільника, як якщо б це був 1 роздільник.

Вкладка

Це теж Правда з Помилковий, за замовчуванням помилковий - це повідомляє VBA, що дані розділені табуляцією.

Крапка з комою

Це тежПравда з Помилковий, за замовчуванням помилковий - це повідомляє VBA, що дані розділені крапкою з комою.

Космос

Це теж Правда з Помилковий, за замовчуванням помилковий - це повідомляє VBA, що дані розділені пробілом.

Інший

Це теж Правда з Помилковий, за замовчуванням помилковий. Якщо ви встановите для цього значення True, то наступний аргумент, ІншеЧар потрібно уточнити.

ІншеЧар

Це символ, за допомогою якого текст відокремлюється (наприклад: або | наприклад).

FieldInfo

Це масив, що містить інформацію про тип даних, які відокремлюються. Перше значення в масиві вказує номер стовпця в даних, а друге значення вказує константу, яку ви збираєтесь використовувати для зображення потрібного типу даних.

Прикладом 5 стовпців з типами даних тексту, числами та датами може бути:

Масив (Масив (1, xlTextFormat), Масив (2, xlTextFormat), Масив (3, xlGeneralFormat), Масив (4, xlGeneralFormat), Масив (5, xlMDYFormat))

Інший спосіб встановити це:

Масив (Масив (1, 2), Масив (2, 2), Масив (3, 1), Масив (4, 1), Масив (5, 3))

Цифри у другому стовпці - це значення констант, де константа xlTextFormat має значення 2, xlGeneralFormat (за замовчуванням) має значення 1, а xlMDYFormat має значення 3.

DecimalSeparator

Ви можете вказати десятковий роздільник, який має використовувати VBA, якщо у даних є числа. Якщо його пропустити, він використовуватиме системні налаштування, зазвичай це крапка.

ThousandsSeparator

Ви можете вказати роздільник тисяч, який має використовувати VBA, якщо у даних є цифри. Якщо його пропустити, він буде використовувати системні налаштування, які зазвичай є комою.

КінцевіМінусові Номери

Цей аргумент значною мірою служить для сумісності даних, які генеруються зі старих систем, де знак мінус часто стояв після числа, а не раніше. Ви повинні встановити для цього значення True, якщо за від’ємними числами є знак мінус. За замовчуванням - false.

Перетворення тексту в стовпці

Наступна процедура перетворить наведені вище дані Excel у стовпці.

12345678910111213141516 ПідтекстToCol1 ()Діапазон ("A1: A25"). TextToColumns _Призначення: = Діапазон ("A1: A25"),Тип даних: = xlDelimited, _TextQualifier: = xlDoubleQuote, _Послідовний розмежувач: = Істина, _Вкладка: = Неправда, _Крапка з комою: = Неправда, _Кома: = Неправда,Пробіл: = Істина, _Інше: = Неправда, _FieldInfo: = Масив (Масив (1, 1), Масив (2, 1), Масив (3, 1), Масив (4, 1), Масив (5, 1)), _DecimalSeparator: = "." , _ThousandsSeparator: = ",", _TrailingMinusNumbers: = ПравдаEnd Sub

У наведеній вище процедурі ми заповнили всі параметри. Однак для багатьох параметрів встановлено значення false або значення за замовчуванням, і вони не є необхідними. Більш чиста версія вищеописаної процедури викладена нижче. Вам потрібно використовувати назви параметрів, щоб вказати, які параметри ми використовуємо.

1234567 ПідтекстToCol2 ()Діапазон ("A1: A25"). TextToColumns _Тип даних: = xlDelimited, _TextQualifier: = xlDoubleQuote, _Послідовний розмежувач: = Істина, _Пробіл: = Істина,End Sub

Насправді потрібно лише 4 параметри - дані розділені подвійною лапкою, ви хочете, щоб послідовні лапки розглядалися як одна, а дані розділялися пробілом!

Для ще більш швидкого рядка коду ми могли б опустити імена параметрів, але тоді нам потрібно було б поставити коми, щоб зберегти місце параметра. Вам потрібно лише вказати інформацію до останнього параметра, який ви використовуєте - у цьому випадку пробіл, який розділяє дані, які є восьмим параметром.

123 ПідтекстToCol3 ()Діапазон ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True, ``, TrueEnd Sub

Після того, як ви виконаєте будь -яку з наведених вище процедур, дані будуть розділені відповідно до графіку нижче.

wave wave wave wave wave