用于"堆叠"列的VBA解决方案

woo*_*gie 0 excel vba

下面是我正在使用的表格的片段.

从左到右我需要知道如何将整个第二列附加到第一列.因此,从第二列的V5789开始,需要将其下面的所有内容放在第一列中的V854之后.第三列需要"堆叠"在第二列的底部.因此2附加到1,3附加到2,4附加到3.等.

有线索吗?

在此输入图像描述

SWa*_*SWa 6

这是另一种选择吗?只有2个调用工作表和一个循环.

Sub append()
Dim g, newArray
Dim strJoin As String
Dim x As Integer

g = Sheet1.Cells(1, 1).CurrentRegion.Value

For x = 1 To UBound(g, 2)
    strJoin = strJoin & Replace(Join(Application.Transpose(Application.Index(g, 0, x)), "~/"), "/~", "")
    If Right(strJoin, 2) <> "~/" And x <> UBound(g, 2) Then strJoin = strJoin & "~/"
Next x

    newArray = Split(strJoin, "~/")

    Columns(1).Cells(1).Resize(UBound(newArray) + 1).Value = Application.Transpose(newArray)

End Sub
Run Code Online (Sandbox Code Playgroud)

  • +1这里比其他答案更聪明,速度更快,但是当单元格包含字符串`〜/`或您选择作为分隔符的任何其他内容时,这显然会失败!如果足够的猴子(或无能的用户)输入了足够的数据,这*将会发生. (2认同)