一需求:按照标题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.最后的效果(同文件目录下出现拆分文件)

Excel表格中依据某一列的值,将这列中一样的数据放在一个文件中。的更多相关文章

  1. 你需要一个新的model实体的时候必须new一个.奇怪的问题: 使用poi解析Excel的把数据插入数据库同时把数据放在一个list中,返回到页面展示,结果页面把最后一条数据显示了N次

    数据库显示数据正常被插 插入一条打印一次数据,也是正常的,但是执行完,list就全部变成了最后一条数据.很奇怪 单步调试 给list插入第一条数据 model是6607 连续插了多条数据都是6607 ...

  2. shiro配置参考(二)可以和mybatis的配置放在一个文件中(不建议这样,可以拆分开来,注意相关配置即可)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  3. shell脚本实现读取一个文件中的某一列,并进行循环处理

    shell脚本实现读取一个文件中的某一列,并进行循环处理 1) for循环 #!bin/bash if [ ! -f "userlist.txt" ]; then echo &qu ...

  4. flink---实时项目--day01--1. openrestry的安装 2. 使用nginx+lua将日志数据写入指定文件中 3. 使用flume将本地磁盘中的日志数据采集到的kafka中去

    1. openrestry的安装 OpenResty = Nginx + Lua,是⼀一个增强的Nginx,可以编写lua脚本实现⾮非常灵活的逻辑 (1)安装开发库依赖 yum install -y ...

  5. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  6. 为什么模板函数的声明和实现都放在.h文件中

    当你不使用这个模板函数或模板类,编译器并不实例化它,当你使用时,编译器需要实例化它,因为编译器是一次只能处理一个编译单元,也就是一次处理一个cpp文件,所以实例化时需要看到该模板的完整定义.所以都放在 ...

  7. linux下批量修改存有超大数据量IP文件中的IP内容以及去重排序

    作为一个linux的学徒,分享一下自己解决这个小问题的心得,在处理这个问题时使用了一个小技巧感觉很适用,个人发觉linux的终端真滴是非常强大,下面就详细地介绍这个问题以及解决办法吧 问题描述:由于要 ...

  8. C++-模板的声明和实现为何要放在头文件中

    源: http://blog.csdn.net/lqk1985/archive/2008/10/24/3136364.aspx 如何组织编写模板程序 发表日期: 1/21/2003 12:28:58 ...

  9. Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例

    1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...

随机推荐

  1. PO,VO,TO,BO,DAO,POJO的解释

    java的(PO,VO,TO,BO,DAO,POJO)解释  O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定 ...

  2. Windows上安装MySQL的完整教程

    1.     首先去官方网站下载压缩文件:https://dev.mysql.com/downloads/mysql/ 2.     解压下载的文件. 3.     将解压的所有文件放在一个文件夹里( ...

  3. webapi读取上传的文件流

    逻辑说明 这里未引用System.Web.Mvc. 主要使用MultipartMemoryStreamProvider对象从Request中获取文件流. var provider = new Mult ...

  4. RubyGems系列之RubyGems初识

    转载请标明来源:https://www.cnblogs.com/zhanggui/p/9719291.html 一. 基础理解 RubyGems简称gems,它是一个用于对Ruby组件进行打包的Rub ...

  5. 【spring源码分析】IOC容器初始化(九)

    前言:上篇文章末尾提到createBeanInstance方法中使用工厂方法实例化Bean对象,本文将对该方法进行分析. AbstractAutowireCapableBeanFactory#inst ...

  6. JToken和BsonValue对象的相互转换

    /// <summary> /// JObject和BsonValue之间的 /// </summary> public static class AdapterExtensi ...

  7. promise async await使用

    1.Promise (名字含义:promise为承诺,表示其他手段无法改变) Promise 对象代表一个异步操作,其不受外界影响,有三种状态: Pending(进行中.未完成的) Resolved( ...

  8. 解决win环境下访问本机虚拟机中centos7 ftp服务器的问题

    inux搭建ftp服务器 1.安装软件: yum install vsftpd 2.修改配置文件vsftpd.conf: vim /etc/vsftpd/vsftpd.conf 把anonymous_ ...

  9. LeetCode_p150_逆波兰表达式计算/后缀表达式计算

    有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除 ...

  10. Session与Cookie(自定义Session)

    一.会话管理 会话管理: 管理浏览器客户端 和 服务器端之间会话过程中产生的会话数据. 域对象: 实现资源之间的数据共享. request域对象 context域对象 会话技术: Cookie技术:会 ...