在Excel中使用转置功能

时间:2014-10-14 06:26:14

标签: excel excel-vba transpose vba

我有几个以;

分隔的文字
   A                  

1; 2; 3; 5; 6; 7; 8; 9; 10
11; 12; 13; 14; 15; 16; 17
18; 19; 20; 21

A列在每行1,2,3中几乎没有文字,依旧用';'

分开

在' Text to Column'的帮助下选项'数据'选项卡我们可以分开相同的

看起来像这样

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

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

一个
1
2
3
4
5
6
7
8
9
10个
11个
12个
13个
14个
15个
16个
17个
18个
19个
20个
21个

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

我们正在手动操作,因为有超过100个条目需要花费很多时间。

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

2 个答案:

答案 0 :(得分:0)

您可以通过某些VBA源代码执行此操作:

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

    Private Sub CommandButton1_Click()
    昏暗的计数器作为整数
    计数器= 1
    昏暗的curString作为字符串
    Dim whereComma As Integer
    Dim i As Integer
    对于i = 1到10
        curString = Cells(i,1)
        whereComma = InStr(1,curString,“;”,vbTextCompare)
        而InStr(whereComma,curString,“;”,vbTextCompare)> 0
            单元格(Counter,4)= Left(curString,whereComma - 1)
            Counter = Counter + 1
            curString = Right(curString,Len(curString) - whereComma)
        蜿蜒
        单元格(Counter,4)= curString
        Counter = Counter + 1
    接下来我
    End Sub

  4. End Sub

    1. 点击按钮
    2. 您可以在D栏上看到您的结果

答案 1 :(得分:0)

此VBA将执行您想要的操作并输出到B列:

LinearLayout.LayoutParams params =
                    new LinearLayout.LayoutParams(
                            android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
                            android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);

ImageView subImage = new ImageView(this);
subImage.setLayoutParams(params);              
layout.addView(subImage);