20170727xlVBA根据总名单和模板生成多页名单
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根据总名单和模板生成多页名单的更多相关文章
- ASP.NET MVC 解析模板生成静态页一(RazorEngine)
简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法 ...
- NET MVC RazorEngine 解析模板生成静态页
ASP.NET MVC 解析模板生成静态页一(RazorEngine) 简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是 ...
- Easypoi实现单模板生成多页wrod文档
EasyPoi可以很方便的通过一个word模板,然后通过填充模板的方式生成我们想要的word文档.但是碰到了一个单模板生成多页数据的场景,比如一个订单详情信息模板,但是有很多订单,需要导入到一 ...
- C# 用模板生成静态页
最近在研究静态页输出的问题,找了一些资料.做了一个简单的模板模式的静态输出 模板代码: <html xmlns="http://www.w3.org/1999/xhtml"& ...
- Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门
Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门 生成pdf有很多种方法,如通过freemarker,或 使用itextpdf.本文将使用itextpdf生成pdf 1 ...
- Java根据Freemarker模板生成Word文件
1. 准备模板 模板 + 数据 = 模型 1.将准备好的Word模板文件另存为.xml文件(PS:建议使用WPS来创建Word文件,不建议用Office) 2.将.xml文件重命名为.ftl文件 3 ...
- 使用T4模板生成不同部署环境下的配置文件
在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...
- CSharpGL(12)用T4模板生成CSSL及其renderer代码
CSharpGL(12)用T4模板生成CSSL及其renderer代码 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立 ...
- MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
前言 经过前面EF的<第一篇>与<第二篇>,我们的数据层功能已经较为完善了,但有不少代码相似度较高,比如负责实体映射的 EntityConfiguration,负责仓储操作的I ...
随机推荐
- ac1008
这题说的是 给了n个点在圆 上 然后 i连 i+2 从i+2 开始连 i+4 然后 这样一直到某个点 已经被连过为止 如果还有的没有被连过 就从那个点开始 连 按照上面的规则 当 N大于6 的时 ...
- jq ajax传参的两种方式
第一种 在url ? 后通过拼接传参 第二种 通过data传参 (1)第一种方法:(通过url传参) function GetQuery(id) { if (id ==1||id==7) { ...
- python3 字典的常用方法
字典的方法(可能需要重新整理) 函数 说明 D代表字典对象 D.clear() 清空字典 D.pop(key) 移除键,同时返回此键所对应的值 D.copy() 返回字典D的副本,只复制一层(浅拷 ...
- SoapUI 使用变量
登录问题不好解决, 只能临时用cookie来执行 1.变量定义 2.引用变量 3.调用Header
- Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(四)——Activiti集成
1.添加Activiti Maven依赖: <!-- ==============================activiti=========================== --&g ...
- 查询结果用Object类或其数组的List接收
查询结果用Object数组接收并返回前端获取和展示,很多时候是封装的方法直接用实体类接收和返回,当所查询出的值包含不只一个实体类的属性值时,返回某个实体类不满足要求,或者不需要此实体类属性太多,返回整 ...
- jQuery 遍历 - eq() 方法 查找当前元素
jQuery 遍历 - eq() 方法 if(data[i].status !='已送达'){ $('.w-beget').eq(i).attr('disabled','disabled'); }
- Python之路----生成器函数进阶
def generator(): print(123) yield 1 print(456) yield 2 g = generator() ret = g.__next__() print('*** ...
- SpringMVC Spring MyBatis 框架整合 Annotation MavenProject
项目结构目录 pom.xml jar包管理 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...
- troubleshooting-windows 在 CDH集群环境读取 Hive 表 KrbException: Cannot locate default realm
KrbException: Cannot locate default realm 解决办法 1)拷贝需要组件的配置文件到项目中的 /resources/目录.如hadoop,目录/etc/hadoo ...