求excel中VBA代码,将A列数据每四个一组复制到B C D E列

注意:不要excel公式,要VBA代码!!!用公式解决我会做

代码如下:

Sub hx()
Dim rg As Range
For Each rg In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
    Cells(Int((rg.Row - 1) / 4) + 1, ((rg.Row - 1) Mod 4) + 2) = rg
Next
End Sub

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-26

Sub 四个一组复制()

Dim i As Integer

    For i = 0 To [a65535].End(3).Row

        Range("a" & i + 1).Copy Cells(i \ 4 + 1, i Mod 4 + 2)

    Next

End Sub

追问

代码有效,我不是从第一行开始的,某些行要求不复制过去,请问代码里的i值应该怎么改?

追答

这描述太简略了点吧?从第几行开始,那些行不复制??

本回答被提问者和网友采纳
第2个回答  2014-09-25
Sub 复制()
n = Application.WorksheetFunction.CountA(Range("A:A"))
For i = 1 To Application.WorksheetFunction.RoundUp(n / 4, 0)
arr = Range("A" & (i - 1) * 4 + 1 & ":A" & (i - 1) * 4 + 4)
Range(Chr(65 + i) & "1:" & Chr(65 + i) & "4") = arr
Next
End Sub

最多只能复制到Z列
相似回答