我的 VBA 代码有问题。我正在尝试创建一个文件,在 A 列中放置一个长列表,并将其分为 45 行的较小列表 - 所以我希望将长列表中的前 45 行分成包含 45 行的较小列表 1,接下来的 45 行将长列表中的行转换为具有 45 行的较小列表 2 等。代码如下:
Sub COPY()
Dim a As Variant
a = Array("J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
For i = 0 To 16
For j = LBound(a) To UBound(a)
Range("A" & 1 + 45 * i & ":A" & 46 + 45 * i).Select
Selection.COPY
Range(a(j) & "3:" & a(j) & "47").Select
ActiveSheet.Paste
Next i
Next j
End Sub
我遇到的问题是它复制前 45 行 - 然后将其粘贴到所有列中。我希望它只粘贴到第一列 - 然后刹车,复制接下来的 45 行并将其粘贴到第 2 列,但我不知道如何解决这个问题。
别惊慌 - 全速使用 Excel!
Sub Colonisator()
Dim a, r As Range
Set r = [A1].CurrentRegion
a = Application.Evaluate("WRAPROWS(" & r.Address & ",2)")
[B1].Resize(UBound(a, 1), UBound(a, 2)) = a
End Sub