Цей підручник покаже вам, як перетворити рядок тексту в одній клітинці у кілька стовпців за допомогою методу 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 |
Після того, як ви виконаєте будь -яку з наведених вище процедур, дані будуть розділені відповідно до графіку нижче.