В этой статье мы создадим макрос для разделения текста в ячейке на столбец по вертикали. Мы можем ограничить текст в ячейке на основе разделителя. В качестве разделителя может использоваться запятая, пробел, обратная косая черта и т. Д.

Чтобы объяснить работу макроса, мы взяли URL-адрес в качестве образца текста в ячейке A10. Макрос можно запустить, нажав кнопку «Отправить».

ArrowSampleData

После выполнения макроса он вернет результат в следующем столбце.

Текстовое значение в ячейке разделено на несколько подстрок в нескольких ячейках во втором столбце.

ArrowAfterRunningMacro

Логическое объяснение

Мы создали макрос «texttocolumns», который выполняет две задачи.

Во-первых, он разделяет строку в A10 на несколько подстрок на основе разделителя. В этом примере мы использовали дефис (-) в качестве разделителя. Во-вторых, он перебирает сгенерированные подстроки из нескольких столбцов в один столбец.

Объяснение кода

Rng.texttocolumns Назначение: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _: = «-«

Приведенный выше код используется для ограничения строки в диапазоне «Rng». Пункт назначения указывает диапазон расположения, в котором будут отображаться выходные данные. DataType указывает тип используемого разделителя. TextQualifier определяет символ, который используется для квалификатора текста. OtherChar указывает символ, используемый в качестве разделителя.

Пожалуйста, введите код ниже

Sub texttocolumns()

'Declaring variables

Dim StartRow, i, LastCol As Long

Dim Rng As Range

'disabling the display alerts

Application.DisplayAlerts = False

'Initializing the variable

StartRow = 10

Set Rng = Range("A10")

'Separting the text based on the delimiter

Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _

:="-"

'Finding the column number of cell containing the last string after delimiting

LastCol = Rng.End(xlToRight).Column

'arranging the text in columns to rows

For i = 2 To LastCol

Cells(10, i).Cut Cells(StartRow, 2)

StartRow = StartRow + 1

Next i

End Sub

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]