Vba 如何将每7列移动到下一个空行?

Vba 如何将每7列移动到下一个空行?,vba,excel,Vba,Excel,我有从A1到BOO66262的数据,我需要将所有数据都放在七列中,而不管行数是多少。我目前有: | A | B | C | D | E | F | G | H | I | J | K | L | M | N | ... | BOO 1 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | ... | x ... | . | . | . | . | . | . | . | . | . | . | . | . | . |

我有从A1到BOO66262的数据,我需要将所有数据都放在七列中,而不管行数是多少。我目前有:

     | A | B | C | D | E | F | G | H | I | J | K | L | M | N | ... | BOO
1    | x | x | x | x | x | x | x | x | x | x | x | x | x | x | ... | x
...  | . | . | . | . | . | . | . | . | . | . | . | . | . | . | ... | .
66262| x | x | x | x | x | x | x | x | x | x | x | x | x | x | ... | x
我需要工作表只有七列,如下所示:

    | A | B | C | D | E | F | G
1   | x | x | x | x | x | x | x
... | x | x | x | x | x | x | x
n   | x | x | x | x | x | x | x
每个组有7列,但行数不同。有人知道如何使用VBA实现这一点吗

下面是我的电子表格当前外观的屏幕截图:

使用Alt+F11打开VBE,并将以下内容放入模块代码表中

Sub play_tetris()
    Dim rws As Long, cls As Long, i As Long
    Dim v As Long, vs As Long, vTMP As Variant, vVALs As Variant

    Application.ScreenUpdating = False

    With Worksheets("Sheet1")
        With .Cells(1, 1).CurrentRegion
            ReDim vVALs(1 To Application.CountA(.Cells) / 7, 1 To 7)
        End With
        For cls = 1 To Range("BOO1").Column Step 7
            rws = .Cells(Rows.Count, cls).End(xlUp).Row
            vTMP = .Cells(1, cls).Resize(rws, 7).Value2
            For v = LBound(vTMP, 1) To UBound(vTMP, 1)
                vs = vs + 1
                For i = 1 To 7
                    vVALs(vs, i) = vTMP(v, i)
                Next i
            Next v
        Next cls
        With .Cells(1, 1).Resize(UBound(vVALs, 1), 7)
            .Value = vVALs
            .Rows(1).Copy
            .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
                          SkipBlanks:=False, Transpose:=False
            .Resize(1, Range("BOO1").Column).Offset(0, 7).EntireColumn.Delete
        End With
    End With

    Application.ScreenUpdating = True

End Sub

如果不处理活页1,请调整第四行中的工作表。点击Alt+Q返回工作表,然后点击Alt+F8打开宏对话框并运行宏。

聚合的7列中的总行数是否将超过1048576?大约有502万个非空单元格,因此大约有70多万行@嘲笑编辑:我算错了。只有220万个单元格,将产生300000行。一般来说,Excel论坛将展示对解决方案的原始努力。从你上一个关于r、quantmodr和mysql的优秀问题来看,我相信你理解这个过程。