在本文中,我们将创建一个宏以将单元格中的文本定界为垂直列。我们可以基于定界符在单元格中定界文本。分隔符可以是逗号,空格,反斜杠等。

为了解释宏的工作原理,我们在单元格A10中将URL作为示例文本。单击“提交”按钮可以执行宏。

ArrowSampleData

执行宏后,它将在下一列中返回输出。

单元格中的文本值被分隔为第二列中多个单元格中的多个子字符串。

ArrowAfterRunningMacro

逻辑解释

我们创建了一个宏“ texttocolumns”,它执行两个任务。

首先,它基于定界符将A10中的字符串定界为多个子字符串。在此示例中,我们使用破折号(-)作为分隔符。其次,它将生成的子字符串从多列遍历到单个列。

代码说明

Rng.texttocolumns目标:= Rng.Offset(0,1),数据类型:= xlDelimited,_ TextQualifier:= xlDoubleQuote,ConcecutiveDelimiter:= True,其他:= 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]