Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: superalpha

[已解决]多张表格合并成一张表格,并实现自动加行

[复制链接]
 楼主| 发表于 2013-10-15 21:43 | 显示全部楼层
本帖最后由 superalpha 于 2013-10-16 11:03 编辑

我只会录制和应用宏,那程序还真看不懂~~老师能讲解下吗?
Sub TEST()
    Range("B3:F65536").Delete
    For Each SH In Sheets
        If SH.Name <> "总表" Then SH.Range("B3:F" & SH.Range("C65536").End(3).Row).Copy Sheets("总表" ).Range("B65536").End(3)(2)
    Next
    For I = 3 To Range("B65536").End(3).Row
        Cells(I, 2) = I - 2
    Next
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2013-10-16 11:12 | 显示全部楼层
zjdh 发表于 2013-10-15 16:45

恳请老师讲讲每句的意思~~~看不懂~~
Sub TEST()
    Range("B3:F65536").Delete
    For Each SH In Sheets
        If SH.Name <> "总表" Then SH.Range("B3:F" & SH.Range("C65536").End(3).Row).Copy Sheets("总表" ).Range("B65536").End(3)(2)
    Next
    For I = 3 To Range("B65536").End(3).Row
        Cells(I, 2) = I - 2
    Next
End Sub
回复

使用道具 举报

发表于 2013-10-16 15:44 | 显示全部楼层
这么简单你都看不懂?
Sub TEST()
    Range("B3:F65536").Delete
    '清除第3行起所有数据
    For Each SH In Sheets
    '扫描每一个工作表
        If SH.Name <> "总表" Then SH.Range("B3:F" & SH.Range("C65536").End(3).Row).Copy Sheets("总表").Range("B65536").End(3)(2)
        '若工作表名称不是总表,则复制该表数据,到总表A列最后单元的下一单元。
    Next
    For I = 3 To Range("B65536").End(3).Row  '有数据的行添加序号
        Cells(I, 2) = I - 2
    Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-10-17 12:07 | 显示全部楼层
没学过VBA,能看懂一些,但几个点,有点不理解。
老师这么一讲解~~我就全明白了~~谢谢~~
回复

使用道具 举报

 楼主| 发表于 2013-10-17 12:11 | 显示全部楼层
zjdh 发表于 2013-10-16 15:44
这么简单你都看不懂?
Sub TEST()
    Range("B3:F65536").Delete

没学过VBA,能看懂一些,但几个点,有点不理解。
老师这么一讲解~~我就全明白了~~谢谢~~
回复

使用道具 举报

发表于 2013-10-17 23:25 | 显示全部楼层
我对VBA不熟,下面改了一下代码,但结果是执行第一次是一个结果,再执行一次就变乱了,不知怎么改结果就是第一次的。请帮我看下,谢谢!

Sub TEST()
    Range("a3:j65536").Delete
    '清除第3行起所有数据
    For Each SH In Sheets
    '扫描每一个工作表
        If SH.Name <> "总表" Then SH.Range("a3:j" & SH.Range("b65536").End(3).Row).Copy Sheets("总表").Range("B65536").End(3)(2)
        '若工作表名称不是总表,则复制该表数据,到总表A列最后单元的下一单元。
    Next
    For I = 3 To Range("a65536").End(3).Row  '有数据的行添加序号
        Cells(I, 2) = I - 2
    Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-10-18 09:36 | 显示全部楼层
本帖最后由 superalpha 于 2013-10-18 09:59 编辑
青山a 发表于 2013-10-17 23:25
我对VBA不熟,下面改了一下代码,但结果是执行第一次是一个结果,再执行一次就变乱了,不知怎么改结果就是第 ...
回复

使用道具 举报

发表于 2015-9-22 22:11 | 显示全部楼层
zjdh 发表于 2013-10-16 15:44
这么简单你都看不懂?
Sub TEST()
    Range("B3:F65536").Delete

我们没学过编程类的,没有一点基础,可能有些代码是懂非懂,所以需要老师解释后,才能知晓。非常感谢你的解答
回复

使用道具 举报

发表于 2015-9-23 08:24 | 显示全部楼层
青山a 发表于 2013-10-17 23:25
我对VBA不熟,下面改了一下代码,但结果是执行第一次是一个结果,再执行一次就变乱了,不知怎么改结果就是第 ...

Sub TEST()
    Range("a3:j65536").Delete
    For Each SH In Sheets
     If SH.Name <> "总表" Then SH.Range("a3:j" & SH.Range("b65536").End(3).Row).Copy Sheets("总表").Range("A65536").End(3)(2)
   Next
    For I = 3 To Range("a65536").End(3).Row  
        Cells(I, 2) = I - 2
    Next
End Sub
回复

使用道具 举报

发表于 2015-9-23 08:41 | 显示全部楼层
zjdh 发表于 2015-9-23 08:24
Sub TEST()
    Range("a3:j65536").Delete
    For Each SH In Sheets

so many years
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 04:50 , Processed in 0.331710 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表