Преобразование текста в столбцы с разделителями в макросе

Одной из самых удобных функций Excel является функция преобразования текста в столбцы, которая позволяет легко разбивать содержимое ячеек на отдельные ячейки в соответствии с любыми указанными вами критериями. Один из способов использования этой функции – позволить ему распознавать символы в ячейках и использовать эти символы для запуска того места, где должно произойти разделение. Этот тип разделения называется разделением с разделителями .

Вам может быть интересно, как можно выполнить операцию преобразования текста в столбцы с разделителями в макрос, который вы может писать. Это достаточно просто сделать, используя метод TextToColumns для созданного вами выделения. Рассмотрим следующий очень простой макрос:

 Sub ExampleSplit1 () Selection.TextToColumns _ Destination: = Range ("A2"), _ DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, _ ConsecutiveDelimiter: =  False, _ Tab: = True, _ Точка с запятой: = False, _ Comma: = False, _ Space: = False, _ Other: = True, _ OtherChar: = "-" End Sub 

Обратите внимание на все переменные, которые вы можете установить для метода TextToColumns. Большинство этих переменных необходимы только потому, что это разделение с разделителями; переменные устанавливают то, что используется в методе в качестве разделителя. Начиная со строки табуляции, переменные напрямую соответствуют настройкам, которые вы сделали бы на шаге 2 мастера преобразования текста в столбцы, если бы вы использовали эту функцию вручную. Вы можете установить для табуляции, точки с запятой, запятой и пробела значение True или False, в зависимости от того, хотите ли вы использовать этот символ в качестве разделителя.

Вы также можете установить для переменной Other значение True или False, в зависимости от того, хотите ли вы иметь «определяемый пользователем» разделитель. Если вы установите для него значение True, тогда вы должны установить переменную OtherChar равной символу, который вы хотите использовать в качестве разделителя.

Если вы используете метод TextToColumns несколько раз в одном макросе, единственное, что вам нужно сделать при вызовах, следующих за первым, – это изменить переменные, которые отличаются от предыдущего вызова. Например, предположим, что вы вызываете метод дважды в одном макросе, и в первый раз вы хотите, чтобы разделение было на экземпляре символа тире, но во второй раз вы хотите, чтобы он был на любом экземпляре строчного x . Вы можете собрать макрос следующим образом:

 Sub ExampleSplit2 () Dim objRange1 As Range Dim objRange2 As Range 'Установите диапазоны Set objRange1 = Range ("A2: A20") Set objRange2 = Range  ("A21: A35") 'Выполните первый синтаксический анализ objRange1.TextToColumns _ Destination: = Range ("A2"), _ DataType: = xlDelimited, _ Tab: = False, _ Точка с запятой: = False, _ Comma: = False,  _ Пробел: = False, _ Other: = True, _ OtherChar: = "-" 'Выполните второй синтаксический анализ objRange2.TextToColumns _ Destination: = Range ("A21"), _ DataType: = xlDelimited, _ OtherChar: = "x  "Конец подписки 

Оцените статью
Frestage.ru
Добавить комментарий