20170727xlVBA根据总名单和模板生成多页名单

时间:2022-09-29 20:58:34
Sub CountingDown()
Dim Dic As Object '用于分类统计
Dim i As Long
Dim CountDown As Long '每页最多几条信息
Dim x As Long, y As Long
Dim Page As Long '页数
Dim Index As Long '每页的序号
Dim Sht As Worksheet
Dim StartRow As Long, EndRow As Long '分页的起始行 Dim mRng As Range '模板区域
Set mRng = Sheets("受理模板").Range("A1:J26") '保存模板区域行高与列宽 With Sheets("总名单")
Page = 0 '分页序号
Index = 0 '姓名序号 '开始划分第一页
i = 2
StartRow = 2
CountDown = 36 '开始倒数信息条数
Set Dic = CreateObject("Scripting.Dictionary") Do While .Cells(i, 1).Value <> "" '循环连续非空行
CountDown = CountDown - 1 '倒数-1 Key = Trim(.Cells(i, 4).Text) '获取分类
If Len(Key) > 2 Then Key = "增驾" '处理分类 If Dic.Exists(Key) = False Then '若是新增的分类
Dic(Key) = 1 '开始计数
CountDown = CountDown - 1 '分类统计需要占用一行
Else
Dic(Key) = Dic(Key) + 1 '如果不是新增的分类,分类计数
End If If CountDown = 0 Or .Cells(i + 1, 1).Value = "" Then '若满一页,或者结束
Page = Page + 1 '新增一页
NewName = "受理名单" & Page '获取新表名
CopyModel NewName '新增名单表
Set Sht = Sheets(NewName) EndRow = i '保存结束行 '初始化 每一页的行列号
x = 0
y = 1
'Index = 0 '改为从一开始算
'内循环
For Each k In Dic.keys '循环每个类别
For n = StartRow To EndRow '循环刚统计的每个人
'处理类别
Key = Trim(.Cells(n, 4).Text)
If Len(Key) > 2 Then Key = "增驾" '如果类别符合,则输出
If Key = k Then
'每满18行,换列
If x = 18 Then
x = 0
y = 6
End If '累计序号
Index = Index + 1 '累计信息序号(包括分类)
x = x + 1 '输出相应的信息
Sht.Cells(3 + x, y).Value = Index
Sht.Cells(3 + x, y + 1).Value = .Cells(n, 1).Value
Sht.Cells(3 + x, y + 2).Value = "'" & .Cells(n, 2).Value End If
Next n '每满18行,换列
If x = 18 Then
x = 0
y = 6
End If
x = x + 1
'输出分类统计结果
Sht.Cells(3 + x, y + 2).Value = k & Dic(k) & "人" Next k '保持模板行高
For x = 1 To 26
Sht.Rows(1).RowHeight = mRng.Rows(x).RowHeight
Next x
For y = 1 To 10
Sht.Columns(y).ColumnWidth = mRng.Columns(y).ColumnWidth
Next y '开始下一页
StartRow = EndRow + 1
CountDown = 36
Set Dic = CreateObject("Scripting.Dictionary")
End If i = i + 1
Loop
End With Set Sht = Nothing
Set Dic = Nothing End Sub
Sub CopyModel(ByVal NewName As String)
Dim mSht As Worksheet
Dim NewSht As Worksheet
Set mSht = Sheets("受理模板")
mSht.Copy After:=Sheets(Sheets.Count)
Set NewSht = Sheets(Sheets.Count)
On Error Resume Next
Sheets(NewName).Delete
On Error GoTo 0
NewSht.Name = NewName
End Sub

  

20170727xlVBA根据总名单和模板生成多页名单的更多相关文章

  1. ASP&period;NET MVC 解析模板生成静态页一(RazorEngine)

    简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法 ...

  2. NET MVC RazorEngine 解析模板生成静态页

    ASP.NET MVC 解析模板生成静态页一(RazorEngine) 简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是 ...

  3. Easypoi实现单模板生成多页wrod文档

        EasyPoi可以很方便的通过一个word模板,然后通过填充模板的方式生成我们想要的word文档.但是碰到了一个单模板生成多页数据的场景,比如一个订单详情信息模板,但是有很多订单,需要导入到一 ...

  4. C&num; 用模板生成静态页

    最近在研究静态页输出的问题,找了一些资料.做了一个简单的模板模式的静态输出 模板代码: <html xmlns="http://www.w3.org/1999/xhtml"& ...

  5. Itextpdf &plus; Adobe Acrobat DC填充模板生成pdf快速入门

    Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门 生成pdf有很多种方法,如通过freemarker,或 使用itextpdf.本文将使用itextpdf生成pdf 1 ...

  6. 使用T4模板生成不同部署环境下的配置文件

    在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...

  7. CSharpGL&lpar;12&rpar;用T4模板生成CSSL及其renderer代码

    CSharpGL(12)用T4模板生成CSSL及其renderer代码 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立 ...

  8. MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码

    前言 经过前面EF的<第一篇>与<第二篇>,我们的数据层功能已经较为完善了,但有不少代码相似度较高,比如负责实体映射的 EntityConfiguration,负责仓储操作的I ...

  9. ccf模板生成

    问题描述 成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同的数据记录,但是页面的基本结构是相同的.例如,对于展示用户信息的页面,当用户为 Tom 时,网页的源代码是 而当用户为 Jerr ...

随机推荐

  1. 你所不知到的C&plus;&plus; 系列

    http://blog.csdn.net/doon/article/category/2926337

  2. webpack使用webpack-dev-middleware进行热重载

    新手,刚开始学习webpack,想使用webdevserver,但定制性太差,于是研究了一下使用webpack-dev-middleware进行指定. 根据文档https://www.npmjs.co ...

  3. asp网站发布步骤总结

    1.在VS2012中打开索要发布的网站,初始页可重命名为index.html或default.apx. 2.点击  生成>生成“网站”,然后“发布网站”. 3.进行发布设置: (1 配置文件 ( ...

  4. SQL Server的备份

    原文:SQL Server的备份 0.参考文献 1.恢复模式 SQL Server 备份和还原操作发生在数据库的恢复模式的上下文中. 恢复模式旨在控制事务日志维护. “恢复模式”是一种数据库属性,它控 ...

  5. MD5摘要算法简析

    1 MD5简介 1.1  概述 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主 ...

  6. java-数组排序--插入排序

    插入排序 想象着你的左手拿着一手好牌[1,1,1,2,6,6,6,9,9],此时你从桌面上又抽出一张牌[1],你将抽出的牌,从又往左,依次与左手的牌进行比较(只以数字进行对比),当抽出的牌第一次不再大 ...

  7. 第三篇、Python函数

    1.函数和过程的定义: 1) 函数定义:函数是逻辑结构化和过程化的一种编程方法. 2) 过程定义:过程就是简单特殊没有返回值的函数. 当一个函数/过程没有使用return显示的定义返回值时,pytho ...

  8. 理解Lambda表达式和闭包

    了解由函数指针到Lambda表达式的演化过程 Lambda表达式的这种简洁的语法并不是什么古老的秘法,因为它并不难以理解(难以理解的代码只有一个目的,那就是吓唬程序员) #include " ...

  9. Hibernate进行对象的增删改查

    首先我们看看hibernate手动配置步骤 (这个了解一点就可以了,以后是不会自己全部手动配置的) 1.    创建WEB项目 2       下载hibernate-release-4.3.11.F ...

  10. php do while循环实例

    do-while循环和while循环非常相似,其区别只是在于do-while保证必须执行一次,而while在表达式不成立时则可能不做任何操作. do-while 循环只有一种语法: do { stat ...