在Excel中使用转置函数

在Excel中使用转置函数,excel,transpose,vba,Excel,Transpose,Vba,我有一个由几个文本分隔的文本 一,;2.3.5.6.7.8.9;10 11;12;13;14;15;16;17 18;19;20;二十一, 列A的每一行中都有少量文本1、2、3等等,以“;”分隔 在“数据”选项卡中的“文本到列”选项的帮助下,我们可以将相同的内容分开 看起来像这样 A B C D E F G H I 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 现在,我们必须手动复制所有文本并将

我有一个由几个文本分隔的文本

一,;2.3.5.6.7.8.9;10 11;12;13;14;15;16;17 18;19;20;二十一,

列A的每一行中都有少量文本1、2、3等等,以“;”分隔

在“数据”选项卡中的“文本到列”选项的帮助下,我们可以将相同的内容分开

看起来像这样

A B C D E F G H I 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

现在,我们必须手动复制所有文本并将其移动到同一列

A 1. 2. 3. 4. 5. 6. 7. 8. 9 10 11 12 13 14 15 16 17 18 19 20 二十一,

显示的数字已经是示例,可以是任何文本字符串

我们是手工做的,需要很多时间,因为有超过100个的入口


有没有办法在宏的帮助下实现自动化?已经在谷歌上搜索并尝试过,但尚未成功。

您可以通过一些VBA源代码来实现这一点:

在工作表上添加一个按钮 双击它 添加以下代码:

专用子命令按钮1\u单击 作为整数的Dim计数器 计数器=1 像字符串一样模糊的字符串 将逗号设置为整数 作为整数的Dim i 对于i=1到10 curString=Cellsi,1 式中,逗号=InStr1,curString;,vbTextCompare 而instrwhere逗号,curString;,vbTextCompare>0 CellsCenter,4=左光标字符串,其中逗号-1 计数器=计数器+1 curString=RightcurString,LencurString-where逗号 温德 CellsCenter,4=游标字符串 计数器=计数器+1 接下来我 端接头

端接头

点击按钮
您可以在D列上看到结果,该VBA将执行您想要的操作并输出到B列:

Sub TransposeColumnA()
Dim X As Long
For X = 1 To Range("A" & Rows.Count).End(xlUp).Row
    Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1).Resize(UBound(Split(Range("A" & X).Text, ";")) + 1, 1).Formula = Application.Transpose(Split(Range("A" & X).Text, ";"))
Next
End Sub
Sub TransposeColumnA()
Dim X As Long
For X = 1 To Range("A" & Rows.Count).End(xlUp).Row
    Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1).Resize(UBound(Split(Range("A" & X).Text, ";")) + 1, 1).Formula = Application.Transpose(Split(Range("A" & X).Text, ";"))
Next
End Sub