excel怎么用VBA实现隔3行复制3行(也就是取3行),然后把取出的写入新表单?

2025-03-28 16:32:19
推荐回答(5个)
回答1:

其实用拉也很快的,只要掌握技巧就行了。

插入一列辅助列,输入1、2、3、4,选中,双击 右下角的填充柄 向下填充

点击出现的填充选项,选择复制

就变成12341234填充

再按该列排序

找到4行的第一行选中,按Ctrl+Shit+↓,就会快速选中下面的所有行,类似的还有←、→、↑

复制——粘贴。

完成。

后注:没仔细看搞错了,是复制3行,不过操作差不多。

回答2:

EXCEL理论上能处理的最大行数是1048576行。实际上你的表格超过4万行,运行时电脑会非常卡的,不可能 处理几百万行的资料。

下面是我不管你多少行,我将Sheet1的1~3、7~9...等行复制到Sheet2表格中的程序:请你按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码打入去,如果粘贴进去的,请你将多余的内容删除,按F5执行即可

Sub 宏1()
    Dim lastrow As Long, i As Long, j As Long
    i = 1    'Sheet1从第一行开始
    j = 1    'Sheet2也从第一行开始
    Sheets("Sheet1").Select    '选择Sheet1
        lastrow = Cells(Rows.Count, 1).End(3).Row    '检查Sheet1有多少行
    Do While i < lastrow    '未到最后 一行则循环
        Sheets("Sheet1").Select    '选择Sheet1
        Range(Rows(i), Rows(i + 2)).Select    '选择三行
        Selection.Copy    '复制
        Sheets("Sheet2").Select    '选择Sheet2
        Cells(j, 1).Select    '选择粘贴位置
        ActiveSheet.Paste    '粘贴    
        i = i + 6    'Sheet1下移6行
        j = j + 3    'Sheet2下移3行
    Loop    '循环
End Sub

回答3:

Sub ss()
Dim i%, r%
Sheets("Sheet1").Cells.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
r = Range("a65536").End(xlUp).Row / 2 + 1
For i = 1 To r Step 3
Rows(i & ":" & i + 2).Delete Shift:=xlUp
Next
End Sub

回答4:

sub copyThreeRow()
'设置目标新表单储存位置
lastRow=1
'遍历原表行
for i=1 to Sheet1.[a100000].end(xlup).row
    if i mod 6=1 then
        Sheet1.cells(i,1).resize(3,).entirerow.copy Sheet2.cells(lastRow+1,1)
        lastRow=lastRow+3
    end if
next i

回答5:

用公式做可以的。