Този урок ще ви покаже как да конвертирате низ от текст в една клетка в множество колони, като използвате метода Range TextToColumns във VBA
Текст към колони
The Обхват.TextToColumns method във VBA е мощен инструмент за почистване на данни, които са импортирани например от текстови или csv файлове.
Помислете за следния работен лист.
Данните са постъпили в Excel всички в една колона и са разделени с кавички.
Можете да използвате метода Range TextToColumns, за да разделите тези данни на колони.
Синтаксис на TextToColumns
израз.TextToColumns (Дестинация, Тип данни, TextQualifier, Последователен делимитер, Раздел, Точка и запетая, Запетая, Космос, Други, Друг Чар, FieldInfo, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers)
Израз
Това е диапазонът от клетки, които искате да разделите - напр .: Обхват („A1: A23“).
Всички аргументи в метода TextToColumns са незадължителни (те имат квадратни скоби около тях).
Дестинация
Където искате да бъде поставен резултатът - често отменяте данните и ги разделяте на едно и също място.
Тип данни
Типът на разбора на текст, който използвате - може да бъде xlОграничен (по подразбиране, ако е пропуснато), или 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 трябва да използва, ако има числа в данните. Ако бъде пропуснат, той ще използва системната настройка, която обикновено е запетая.
TrailingMinusNumbers
Този аргумент е до голяма степен за съвместимост на данни, които се генерират от по -стари системи, където знакът минус често е бил след числото, а не преди. Трябва да зададете True, ако отрицателните числа имат знак минус зад себе си. По подразбиране е False.
Преобразуване на текст в колони
Следващата процедура ще преобразува горните данни на Excel в колони.
12345678910111213141516 | Sub TextToCol1 ()Диапазон ("A1: A25"). TextToColumns _Дестинация: = Обхват ("A1: A25"),DataType: = xlDelimited, _TextQualifier: = xlDoubleQuote, _Последователен ограничител: = Вярно, _Раздел: = невярно, _Точка и запетая: = невярно, _Запетая: = невярно,Пробел: = Вярно, _Други: = False, _FieldInfo: = масив (масив (1, 1), масив (2, 1), масив (3, 1), масив (4, 1), масив (5, 1)), _DecimalSeparator: = "." , _ThousandsSeparator: = ",", _TrailingMinusNumbers: = ВярноEnd Sub |
В горната процедура сме попълнили всички параметри. Много от параметрите обаче са зададени на false или на настройката по подразбиране и не са необходими. По -чиста версия на горната процедура е посочена по -долу. Трябва да използвате имената на параметрите, за да посочите кои параметри използваме.
1234567 | Sub TextToCol2 ()Диапазон ("A1: A25"). TextToColumns _DataType: = xlDelimited, _TextQualifier: = xlDoubleQuote, _Последователен ограничител: = Вярно, _Пробел: = Вярно,End Sub |
Всъщност са необходими само 4 параметъра - данните са разделени с двойна кавичка, искате последователните кавички да се третират като една и данните да са разделени с интервал!
За още по -бърз ред код, бихме могли да пропуснем имената на параметрите, но след това ще трябва да поставим запетаи, за да запазим мястото на параметъра. Трябва само да въведете информация до последния параметър, който използвате - в този случай пространството, което разделя данните, което е осмият параметър.
123 | Sub TextToCol3 ()Диапазон ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueEnd Sub |
След като изпълните някоя от горните процедури, данните ще бъдат разделени съгласно графиката по -долу.