将多个列和行转换为一个

时间:2015-08-16 05:05:22

标签: vba

我正在尝试使用VBA将数据表(没有标题/行数据)转换为单个列。

示例如下:

123    580    255    
15     58     255
154

最终结果应为:

123
15
154
580
58
255
255

(注意:没有空白)

我整天尝试使用for-next和do-while循环等等,没有任何好结果。

1 个答案:

答案 0 :(得分:0)

这样的事情对你有用吗?

Dim c As Range
Dim iRow As Integer, iColumn As Integer

'Find first empty cell in column A
Set c = Sheets(1).Range("A1")
Do Until c.Value = ""
    Set c = c.Offset(1, 0)
Loop

iRow = 1
iColumn = 2

Do Until Sheets(1).Cells(iRow, iColumn).Value = ""

    iRow = 1

    Do Until Sheets(1).Cells(iRow, iColumn).Value = ""

        c.Value = Sheets(1).Cells(iRow, iColumn).Value
        Set c = c.Offset(1, 0)
        iRow = iRow + 1

    Loop

    iColumn = iColumn + 1

Loop

如果列B +中有一些空单元格,那么也许你可以考虑在打开第一个循环后立即添加一个range.sort。