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 ...
随机推荐
- Python: 反方向迭代一个序列
使用内置的reversed()函数 >>> a = [1, 2, 3, 4] >>> for x in reversed(a): ... print(x) out ...
- MyBatis学习笔记(六)——调用存储过程
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4270352.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据 ...
- iPhone手机获取uuid 安装测试app
iPhone手机获取uuid 安装测试app UDID是一种iOS设备的特殊识别码.除序号之外,每台ios装置都另有一组独一无二的号码,我们就称之为识别码( Unique Device Identif ...
- 小白也能看懂的插件化DroidPlugin原理(一)-- 动态代理
前言:插件化在Android开发中的优点不言而喻,也有很多文章介绍插件化的优势,所以在此不再赘述.前一阵子在项目中用到 DroidPlugin 插件框架 ,近期准备投入生产环境时出现了一些小问题,所以 ...
- echart知识点、常用图形
原文地址:https://www.cnblogs.com/kewenxin/p/9338272.html 本文是自己在项目中需要运用到的echarts图形进行整理,都有完整的代码.echarts原型, ...
- 学写网页 #05# CSS Mastery 笔记 1~3
看到第四章才发现这本书已经太旧了..看到第 3 章为止吧.前三章主要讲的内容:一些编码常识.怎样选择元素.盒子模型(主要是 Margin).定位(绝对.相对.浮动.fixed 等) 第一章 conve ...
- MySQL分区(Partition)功能
引用地址:http://blog.csdn.net/tjcyjd/article/details/11194489 自5.1开始对分区(Partition)有支持 = 水平分区(根据列属性按行分)=举 ...
- Centos 更改系统时间
.date //查看本地 .hwclock --show //查看硬件的时间 .如果硬件的时间是对不上,那就对硬件的时间进行修改 .hwclock --set --date '2222-22-22 2 ...
- 配置redis, make的时候: zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
今天正在centos7.3里面配置redis3.0, 结果make的时候抛出编译中断 CC adlist.o In file included from adlist.c:34:0: zmalloc. ...
- ArchLinux For Arm 树莓派开机自启动脚本rc.local
今天折腾了下树莓派的迅雷固件,迅雷的安装很顺利,解压直接运行portal 就搞定了, 但是自启动就有问题了,由于新版的ArchLinux切换到systemd,不但rc.conf省了,连rc.local ...