一需求:按照标题C的内容,一样的数据整理到一个文件中。

二.操作:

1.atl+F11弹出vb窗口

2.点击       插入===》模块   ,复制以下代码,注意这是一个表头为三行的函数(保存)

Sub 保留表头拆分数据为若干新工作簿()
    Dim arr, d As Object, k, t, i&, lc%, rng As Range, c%
    
    '获取分割列的索引
    c = Application.InputBox("刘刚:请输入拆分列号", "刘刚:输入框", 1, , , , , 1)
    
    '如果分割列的索引是0退出程序
    If c = 0 Then Exit Sub
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    '取a1附近所有的数据
    arr = [a1].CurrentRegion
    '取有多少列 可以将arr看做是数组,数组的第二个维度就是列的个数
    lc = UBound(arr, 2)
    
    '取标题(从a1开始取去几行几列)(如果是一行标题,就把下行的3改成1,几行标题就写几)
    Set rng = [a1].Resize(3, lc)
    Set d = CreateObject("scripting.dictionary")
    
    '从标题行之下开始循环遍历不同的值(i =  标题行+1    如三行标题就是 4)
    For i = 4 To UBound(arr)
        If Not d.Exists(arr(i, c)) Then
            Set d(arr(i, c)) = Cells(i, 1).Resize(1, lc)
        Else
            Set d(arr(i, c)) = Union(d(arr(i, c)), Cells(i, 1).Resize(1, lc))
        End If
    Next
    
    k = d.Keys
    t = d.Items
    
    For i = 1 To d.Count
        With Workbooks.Add(xlWBATWorksheet)
            '从哪个单元格开始复制内容
            rng.Copy .Sheets(1).[a1]
            
            '真正的内容从标题下开始复制(4   表示标题行+1,几行标题行就改成几+1)
            t(i - 1).Copy .Sheets(1).[a4]
            .SaveAs Filename:=ThisWorkbook.Path & "\" & k(i - 1) & "计算机学院2019年'劳动节'假期学生去向登记表" & ".xls"
            .Close
        End With
    Next
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
    MsgBox "成功执行"
End Sub

3.点击Excel中的文件按钮。

4.点击选项

4.自定义功能区,勾选开发工具,点击确定

5.切换到开发工具选项卡

6.点击插入,选择图片指示控件

7.随便一个位置,拖动一下,选择刚才定义的宏,确定

8.点击按钮即可

9.效果,我们输入3

10.最后的效果(同文件目录下出现拆分文件)

最新文章

  1. FCM聚类算法介绍
  2. C#基础强化-继承与多态
  3. Java EE开发平台随手记2——Mybatis扩展1
  4. 允许FTP用户登录并禁止Shell登录的方法
  5. 静态局部变量(面向过程的static关键字)
  6. MapReduce编程job概念原理
  7. atitit.提升开发效率---动态语言总结
  8. C语言内存对齐详解(2)
  9. The internals of Python string interning
  10. JDBC公共操作类
  11. 二叉树,平衡树,红黑树,B~/B+树汇总
  12. Java之反射--练习
  13. mysql 返回自增id
  14. php留言板的实现
  15. GitHub开源:SQLite 增强组件 Sheng.SQLite.Plus
  16. Vue 封装的loading组件
  17. 用waitpid函数回收进程
  18. make distclean
  19. 11-11SQLserver基础--数据库之触发器
  20. 【vue】vue生命周期解读 (流程+钩子函数)

热门文章

  1. python使用rabbitMQ介绍一(生产-消费者模式)
  2. SQLServer之创建Transact-SQL游标
  3. CentOS 7 系统下 GitLab 搭建
  4. 看AppCan移动管理平台如何助力企业移动化
  5. nginx正则匹配
  6. 彻底搞懂spark的shuffle过程(shuffle write)
  7. node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录
  8. c# 串口SerialPort
  9. ThinkPad T400 键帽下面的X支架的安装方法
  10. 2018年NGINX最新版高级视频教程