永发信息网

excel中有一组n行3列的数据,数据每210行3列一组。如何快速将数据分列。

答案:2  悬赏:20  手机版
解决时间 2021-11-16 18:30
  • 提问者网友:记得曾经
  • 2021-11-16 02:04
excel中有一组n行3列的数据,数据每210行3列一组。如何快速将数据分列。
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-11-16 03:42
Sub ccol()
    Application.ScreenUpdating = False
    s = Sheet1.UsedRange.Rows.Count
    t = Int(s / 200)
    For i = 1 To t
        Range(Cells(i * 200 + 1, 1), Cells(i * 200 + 200, 3)).Cut
        Cells(1, 4 * i + 1).Select
        ActiveSheet.Paste
    Next
    Application.ScreenUpdating = True
End Sub以上代码放在VBA sheet1中运行即可

追问能解释一下吗,因为数据有时是随着仪器测试结果而出现波动。
如果我要是改动200行这个数据,应该怎么改代码。比如我要是想把数据改成150行3列为一组。追答Sub ccol()
    '每x行一组,直接把有200的地方改为x就行了
    '一组y列,要修改两个地方:
    'Range(Cells(i * 200 + 1, 1), Cells(i * 200 + 200, y)).Cut
    'Cells(1, (y+1) * i + 1).Select    y+1而不是y是因为各组要空一行
    
    Application.ScreenUpdating = False '关闭屏幕更新,不然屏幕闪动厉害,钛合金忽略~
    s = Sheet1.UsedRange.Rows.Count 's是数据总行数
    t = Int(s / 200)    't是要另分的组数
    For i = 1 To t
        Range(Cells(i * 200 + 1, 1), Cells(i * 200 + 200, 3)).Cut '对除了前200的每200行数据剪切
        Cells(1, 4 * i + 1).Select '选中要粘贴的单元格。第i组数据粘贴到 第4*i+1列,如:第1组数据粘贴到第5列,第2组第9列
        ActiveSheet.Paste '粘贴
    Next
    Application.ScreenUpdating = True '恢复屏幕刷新
End Sub
全部回答
  • 1楼网友:刀戟声无边
  • 2021-11-16 03:50
Sub fenzu()
    Dim i As Integer
    Dim c As Integer
    c = 0
    Application.ScreenUpdating = False
    For i = 212 To [A65536].End(xlUp).Row Step 210
        c = c + 1
        Range("A" & i & ":C" & i + 209).Cut
        Cells(2, c * 4 + 1).Select
        ActiveSheet.Paste
    Next
    Application.ScreenUpdating = True
End Sub追问要是,我想150行为一组的话,要怎么改代码啊?急求
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯