关灯

[Excel] Excel VBA 一键汇总多个sheet数据到总表

  [复制链接] [查看百度是否已收录此帖]
菜鸟站长联盟 发表于 2021-4-25 11:34:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 

本帖子中包含更多资源!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
今天给各位分享的是Excel VBA实例,如何一键汇总多个sheet数据到总表,这个要做统计、数据的时候非常的好用。

代码如下
Sub collect()

    Dim sht As Worksheet, rng As Range, k&, trow&

    Application.ScreenUpdating = False

    trow = Val(InputBox("请输入标题的行数", "提醒"))

    If trow < 0 Then MsgBox "标题行数不能为负数。", 64, "警告": Exit Sub

    Cells.ClearContents

    Cells.NumberFormat = "@"

    For Each sht In Worksheets

    '遍历表格

        If sht.Name <> ActiveSheet.Name Then

        '如果表格名称不等于当前表名则进行复制数据……

            Set rng = sht.UsedRange

            '定义rng为表格已用区域

            k = k + 1

            '累计K值

            If k = 1 Then

            '如果是首个表格,则K为1,则把标题行一起复制到汇总表

                rng.Copy

                [a1].PasteSpecial Paste:=xlPasteValues

            Else

                '否则,扣除标题行后再复制黏贴到总表,只黏贴数值

                rng.Offset(trow).Copy

                Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).PasteSpecial Paste:=xlPasteValues

            End If

        End If

    Next

    [a1].Activate

    Application.ScreenUpdating = True

End Sub

这里提醒一下

1、运行代码的时候一定要先选择需要汇总的sheet,否则会出错的;

2、每个sheet的标题行数可以根据实际情况来填写,填0,则表示不需要标题行,但是第一页默认会把标题行加上。


上一篇:excel怎么快速合并多个工作表数据到一个工作表
零基础学习网站建设,上菜鸟站长联盟就够了!你与成功只差添加一个好友:微信18298346873
 
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

7关注

2粉丝

5324帖子

排行榜

QQ| 百度统计|账号封禁|李海博客 ( 陇ICP备15000550号-2 )|

GMT+8, 2021-5-13 18:05 , Processed in 0.117836 second(s), 32 queries .

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