Преобразование текста в столбцы с разделителями в макросе (Microsoft Excel)
Одной из самых удобных функций Excel является функция преобразования текста в столбцы, которая позволяет легко разбивать содержимое ячеек на отдельные ячейки в соответствии с указанными вами критериями. Один из методов использования этой функции — позволить ему распознавать символы в ячейках и использовать эти символы для запуска того места, где должно произойти разделение. Этот тип разделения называется разделением delimited.
Вам может быть интересно, как можно выполнить операцию преобразования текста в столбцы с разделителями в макрос, который вы, возможно, пишете. Это достаточно просто сделать, используя метод TextToColumns для созданного вами выделения. Рассмотрим следующий очень простой макрос:
Sub ExampleSplit1() Selection.TextToColumns _ Destination:=Range("A2"), _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, _ Tab:=True, _ Semicolon:=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 up the ranges Set objRange1 = Range("A2:A20") Set objRange2 = Range("A21:A35") 'Do the first parse objRange1.TextToColumns _ Destination:=Range("A2"), _ DataType:=xlDelimited, _ Tab:=False, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:="-" 'Do the second parse objRange2.TextToColumns _ Destination:=Range("A21"), _ DataType:=xlDelimited, _ OtherChar:="x" End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2929) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Delimited_Text-to-Columns_in_a_Macro [Преобразование текста в столбцы с разделителями в макросе]
.