Excel 宏 将工作表中的数据按照顺序分拆到 本工作簿 的其他工作表_office2016拆分工作表-程序员宅基地

技术标签: Office  拆分工作簿  Excel  一个工作簿拆分多个工作表  

(本文版本office2016)

1.需要打开“开发工具”选项

2.定义宏

3.代码(文档最后)

4.执行

5.拆分完成

 

Sub CF()
    Dim myRange As Variant
    Dim myArray
    Dim titleRange As Range
    Dim title As Variant
    Dim columnNum As Integer
    myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8)
    myArray = WorksheetFunction.Transpose(myRange)
    Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“分公司”", Type:=8)
    title = titleRange.Value
    columnNum = titleRange.Column
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim i&, Myr&, Arr, num&
    Dim d, k
    For i = Sheets.Count To 1 Step -1
        If Sheets(i).Name <> "全司汇总" Then
          
        End If
    Next i
    Set d = CreateObject("Scripting.Dictionary")
    Myr = Worksheets("全司汇总").UsedRange.Rows.Count
    Arr = Worksheets("全司汇总").Range(Cells(2, columnNum), Cells(Myr, columnNum))
    For i = 1 To UBound(Arr)
        d(Arr(i, 1)) = ""
    Next
    k = d.keys
    For i = 0 To UBound(k)
        Set conn = CreateObject("adodb.connection")
        conn.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
        Sql = "select * from [全司汇总$] where " & title & " = '" & k(i) & "'"
        Worksheets.Add after:=Sheets(Sheets.Count)
        With ActiveSheet
            .Name = k(i)
            For num = 1 To UBound(myArray)
                .Cells(1, num) = myArray(num, 1)
            Next num
            .Range("A2").CopyFromRecordset conn.Execute(Sql)
        End With
        Sheets(1).Select
        Sheets(1).Cells.Select
        Selection.Copy
        Worksheets(Sheets.Count).Activate
        ActiveSheet.Cells.Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    Next i
    conn.Close
    Set conn = Nothing
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014096024/article/details/90448676

智能推荐

AndroidStudio——入门1_androi studio讲解-程序员宅基地

文章浏览阅读225次。转自文章《Android Studio2.0 教程从入门到精通Windows版 - 入门篇》http://www.open-open.com/lib/view/open1468121363300.html开发第一应用可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程:接下来需要输入应用名称(第一个字母要大写..._androi studio讲解

实在没货,简历(软件测试)咋写?-程序员宅基地

文章浏览阅读856次,点赞21次,收藏15次。简历咋写?首先你要知道简历的作用。简历的作用是啥呢?如何让HR看你一眼,便相中你的简历,实现在众多简历中“脱颖而出”,这当然需要搞清楚简历的核心内容。所以本文的文章结构就出来了,一起看下:1)简历内容该该怎么写2)简历的素材该如何找3) 成功的简历模板分享【重要】4)简历投递和调整的建议一份完整的软测简历包括7大块,其中重点的三部分内容分别为:1)教育经历2)专业技能3)项目经验下面每项展开说明一下。基本信息主要是介绍个人真实的基础信息,方便HR初步了解你。

【Android】AndroidStudio实现图片的自动轮播ViewFlipper_android studio轮播图-程序员宅基地

文章浏览阅读7.3k次,点赞14次,收藏109次。AndroidStudio2.2实现图片的自动轮播ViewFlipper_android studio轮播图

使用Tesseract-OCR训练文字识别记录_tesseract ocr list-程序员宅基地

文章浏览阅读4.9k次。时间:2016-11-14 21:40 来源:清屏网 作者:那一抹忧伤 点击:133次Tesseract官方文档页面https://github.com/tesseract-ocr/tesseractjTessBoxEditor官方文档页面http://vietocr.sourceforge.net/training.html[root@doc_tesseract ocr list

网安快速入门(新人发稿,如有失误多多见谅)-程序员宅基地

文章浏览阅读962次,点赞18次,收藏16次。黑客分为三种,分别为白帽,灰帽和黑帽白帽黑客研究黑客技术,但研究目的不是为了攻击;这类人多为网络安全人员。灰帽黑客此类人员大多数是计算机爱好者,进行无目的的攻击计算机常用的进制转换有如下四种二进制:逢2进1;十进制:逢10进1;八进制:逢8进1;十六进制:逢16进1;

timescaledb源码安装_postgresql was built without openssl support, whic-程序员宅基地

文章浏览阅读3.1k次。因为postgresql是源码安装的,所以timescaledb也得源码安装。timescaledb 0.12.1版本,解压后如下[root@server4 timescaledb-0.12.1]# lsbootstrap build CMakeLists.txt docs NOTICE scripts src timescaledb..._postgresql was built without openssl support, which timescaledb needs for fu

随便推点

Hibernate源码分析_hibernate 源码类关系-程序员宅基地

文章浏览阅读7.5k次。这段时间本人利用空闲时间解读了一下Hibernate3的源码,饶有收获,愿与大家共享。 废话不多说,首先我们先对Hibernate有一个大致的印象l 设计模式Hibernate=监听器,实际上是回调l Hibernate3支持拦截器 Hibernate配置方面的大原则:l bhn.xml文件所有配置都是描述本实体,除了cascade描述级联,即如何将本实体的操作(_hibernate 源码类关系

react native 如何上传文件/图片到 strapi数据库_react-native 上传-程序员宅基地

文章浏览阅读1.4k次,点赞40次,收藏20次。折腾了一段时间,发现在strapi上传文件是出名的困难,而且官方文档上传文件教程也没有针对react native的部分,仅仅通过它的nodejs和browser代码在rn中套用行不通,其中还有些细节的纰漏。开始前请确保自己已经按照官方教程安装好strapi提示:以下是本篇文章正文内容,下面案例可供参考。_react-native 上传

DDos防护系列之2--DDos防御策略_ds防护策略-程序员宅基地

文章浏览阅读3k次。前一篇文章讲述了什么是DDos,DDos的种类等。这一节我们讲述DDos的防御策略。我们按照DDos的攻击类型来讲解每一种类型对应的防御策略。一、DDos攻击类型有以下一些类型,但不限于:畸形报文、传输层(4层)DDoS攻击、Web应用DDoS攻击、DNS DDoS攻击、连接型DDoS攻击。1. 畸形报文每中报文都有相对应的标准格式,如果不符合这种格式就属于畸形报文,我们可_ds防护策略

EasyClick 易点云测自动化测试入门到精通_冉遗鱼图色插件-程序员宅基地

文章浏览阅读2.2k次。EasyClick 易点云测自动化测试入门到精通_冉遗鱼图色插件

JDBC访问数据库的步骤,以及三种数据库的驱动和连接字符串_goldendb连接串如何写-程序员宅基地

文章浏览阅读1k次。一、JDBC访问数据库的具体步骤:1.导入数据库的驱动,加载具体的驱动类2.与数据库建立连接3.发送sql语句,执行4.处理结果集(查询)**二、三种数据库的具体驱动:** 1.Oracle:驱动jar:ojdbc-x.jar具体驱动类:Oracle.jdbc.OracleDriver连接字符串:jdbc:oracle:thin:@localhost:1521:OR......_goldendb连接串如何写

并发、消息队列、缓存_消息队列与缓存的区别-程序员宅基地

文章浏览阅读4.3k次,点赞3次,收藏7次。"并发"会引发关于"顺序"的问题,及如何能够在使用高并发提高效率的同时,又在一定程度上能够控制/维持一定的操作顺序。更广泛的,有关并发的"锁"操作,也都会围绕同样的思路来解决问题。没有银弹。想要在维持并发的同时,通过什么魔法来同时维持顺序是不可能的。最基本的核心想法是,将并发的操作变为串行,那么操作也就自然会有了顺序。这是一个看似有些矛盾的解决方案。并发的目的不就是为了提高效率么?!如果将并..._消息队列与缓存的区别

推荐文章

热门文章

相关标签