将文本单元格中的字符串与其他单元格中(相同位置-分隔符)的其他字符串连接在一起

时间:2018-11-21 17:42:33

标签: excel text delimiter

首先,为了清楚起见,我正在使用Excel 2013,所以我将无法访问Excel 2016上的新功能。

第二,我需要帮助,因为我无法为下面的问题找到解决方案或至少一种方法。

我将尽力格式化。也许截图更好

See example 所以对于这个问题,我有3列和很多行。 每个单元格中的分隔符为; 。同一行中每个单元格中将有相同数量的定界符。 但是每一行都有不同数量的定界符。 在第一个,最后一个之后以及在定界符之间存在一个假定值。

我一直在寻找一种方法来将这些定界符中位于相同位置的这些值连接或连接在一起,成为同一文本,但是我什么都没想到。

例如:

String root_sd = Environment.getExternalStorageDirectory().toString();
File name = new File(root_sd + "/myFolder/");
File[] files = name.listFiles();

Typeface typeface = Typeface.createFromFile(files[0].getPath());
textView.setTypeface(typeface);
textView.setTextSize(20);

Typeface typeface2 = Typeface.createFromFile(files[1].getPath());
textView2.setTypeface(typeface2);
textView2.setTextSize(20);

Typeface typeface3 = Typeface.createFromFile(files[2].getPath());
textView3.setTypeface(typeface3);
textView3.setTextSize(20);

所以我希望第4列包含“ a1q”,第5列“ b2w”和第6列“ c3e”的连接结果

或者它可能只是第4列中所有带有分隔符的东西,例如“ a1q; b2w; c3e”

第2行和第3行相同,但它们可能具有更多或更少的值。这就是为什么我需要一些可扩展的东西。

除非包含VBA,否则我认为普通Excel无法实现。我希望我已将问题弄清楚,并在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这应该将所有内容放在第4列或“ D”中。

Sub splitter()
    Dim SubBNameSplit() As String, BuildNameSplit() As String, NumberSplit() As String, result As String
    Dim lrow As Long
    Dim x As Range
    Dim i As Long

    With Worksheets("Sheet1")
        lrow = .Cells(Rows.Count, 1).End(xlUp).Row
            For Each x In .Range("A2:A" & lrow)
                SubBNameSplit() = Split(.Range("A" & x.Row), ";")
                BuildNameSplit() = Split(.Range("B" & x.Row), ";")
                NumberSplit() = Split(.Range("C" & x.Row), ";")
                result = ""

                For i = LBound(SubBNameSplit) To UBound(SubBNameSplit)
                    result = result & SubBNameSplit(i) & BuildNameSplit(i) & NumberSplit(i) & ";"
                Next i

                .Range("D" & x.Row).Value = result
            Next x
    End With
End Sub