Разграничение текста в ячейке вертикально к колонку
В этой статье мы создадим макрос для разделения текста в ячейке на столбец по вертикали. Мы можем ограничить текст в ячейке на основе разделителя. В качестве разделителя может использоваться запятая, пробел, обратная косая черта и т. Д.
Чтобы объяснить работу макроса, мы взяли URL-адрес в качестве образца текста в ячейке A10. Макрос можно запустить, нажав кнопку «Отправить».
После выполнения макроса он вернет результат в следующем столбце.
Текстовое значение в ячейке разделено на несколько подстрок в нескольких ячейках во втором столбце.
Логическое объяснение
Мы создали макрос «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]