20170727xlVBA根据数据表和模板工作簿生成个人明细表工作簿
- Sub CreateTables()
- Dim Wb As Workbook
- Dim OpenWb As Workbook
- Dim Sht As Worksheet
- Dim Rng As Range
- Dim Arr As Variant
- Dim i As Long
- Const HEAD_ROW As Long = 2
- Dim EndRow As Long
- '模板文件名和路径
- Const ModelName As String = "社+名.xlsx"
- Dim ModelPath As String
- '生成文件名和路径
- Dim NewName As String
- Dim NewPath As String
- Set Wb = Application.ThisWorkbook
- Set Sht = Wb.Worksheets("明细表")
- ModelPath = Wb.Path & "\模板\" & ModelName '社+名的完整路径
- With Sht
- EndRow = .Cells(.Cells.Rows.Count, "A").End(xlUp).Row
- '内置方法,返回A列最后一个非空单元格行号
- Set Rng = .Range(.Cells(HEAD_ROW + 1, "A"), .Cells(EndRow, "I"))
- '引用区域,左上角单元格,右下角单元格,这样就获取数据区域了 自己领悟一下就知道了
- Arr = Rng.Value
- '存在一个数组里面,这样速度好很多
- '和单元格区域是一样的。只是它只有数据,没有框框颜色字体什么的,所以用起来很快
- Set OpenWb = Application.Workbooks.Open(ModelPath)
- '打开模板文件
- For i = LBound(Arr) To UBound(Arr) '从第一行到最后一行,逐行循环
- 'arr相当于是一个有行列结构的数组,和单元格区域是一样的。Lbound可以取到开始行,Ubound可以取到结束行
- '开始构建新文件名
- NewName = Arr(i, 9) & "-" & Arr(i, 2) & ".xlsx"
- 'i是可变的,9就是第I列 经办行,2就是第B列的客户名称,新文件名就弄好了
- NewPath = Wb.Path & "\生成\" & NewName
- '新文件名的完整路径 就构造好了
- '开始填表
- '这里就做两个示范,剩下的你自己填就知道了
- '第一个sheet
- OpenWb.Worksheets("(一)档案封皮").Range("B13").Value = Arr(i, 2) '借款人
- OpenWb.Worksheets("(一)档案封皮").Range("A23").Value = Arr(i, 9) '经办行
- OpenWb.Worksheets("(二)债务主体认定书").Range("B4").Value = Arr(i, 2) '经办行
- OpenWb.Worksheets("(二)债务主体认定书").Range("B5").Value = "'" & Arr(i, 1) '贷款号
- '注意注意注意 长数字 前面一定要加上 "'" & ,这样防止后面三位数字变成 000
- '************剩下自己弄
- OpenWb.SaveCopyAs NewPath '填完就另存副本
- Next i
- OpenWb.Close False '关掉模板
- End With
- '释放对象,告诉内存,这些东东我不要了,不然一直占着内存
- Set Wb = Nothing
- Set OpenWb = Nothing
- Set Sht = Nothing
- Set Rng = Nothing
- Erase Arr '擦除数组
- End Sub
20170727xlVBA根据数据表和模板工作簿生成个人明细表工作簿的更多相关文章
- 20170731xlVba根据数据表和模板表生成新表
Public Sub SplitData() Dim Wb As Workbook Dim Sht As Worksheet Dim NewSht As Worksheet Dim arr As Va ...
- MySQL数据表更新模板
-- ---------------------------- -- 新增表 -- ---------------------------- CREATE TABLE `biz_circle_lead ...
- SqlProfilter监控指定数据库数据表——监控linq组合查询生成的sql
1.例子 实际测试环境中往往很多测试都在调用数据库,那么如何使用SqlProfilter监控筛选到自己想要监看的数据库对应的表有关linq生成的sql时候就需要做如下设置了 ........... u ...
- 帝国cms数据表详细说明
表 名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_infotmp_news 采集临时表 phome_ecms_news 新闻主数据记录表 ph ...
- 帝国cms数据表中文说明
本文介绍下,帝国cms中各数据表的用途,有需要的朋友,参考下吧. 帝国cms各数据表及用途说明. phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_info ...
- 帝国empirecms数据库数据表详细说明
表名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_infotmp_news 采集临时表 phome_ecms_news 新闻主数据记录表 p ...
- 帝国CMS数据库数据表详细说明
表名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_inf ...
- laravel5Eloquent模型与数据表的创建
下面是有关管理员模型与表的创建 生成模型时同时生成数据库迁移文件 在生成的迁移文件中添加字段 运行命令行生成数据表 命令进行混合运用 生成工厂文件,数据填充文件 工厂模型代码 数据填充文件代码 数据填 ...
- EXCEL 如何将多个工作表或工作簿合并到一个工作表
在使用Excel 时,我们经常需要将多个工作表或工作簿合并到一个工作表中,这样我们就能快速地对数据进行分析和统计.对于一般用户而言,除了复制每个工作表后再粘贴,没有其他什么方法了.如果只是合并少数几个 ...
随机推荐
- MySQL从删库到跑路_高级(三)——视图
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.视图简介 1.视图简介 视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式.视图包含 ...
- python requests 请求的封装
#encoding=utf-8import requestsimport jsonclass HttpClient(object): def __init__(self): pas ...
- MAC安装最新datagrip之后无法非官方激活,而且启动过慢
由于之前安装过,更新最新版本之后发现不能使用(http://xidea.online)激活??? 解决方法:使用CleanMyMac等相应软件删除之后,还要去相应的保存记录的路径(/Users/用户名 ...
- python的os模块和sys模块
os模块 os.getcwd() 获取当前的工作目录 os.chdir('绝对路径/相对于当前工作目录的路径') 改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir ...
- JS获取周、月、季度日期
效果: 代码: //用于获取日期本周.本月.本季度的js //Author : guanghe //文件引用方法:<script src="${staticPath}/common/j ...
- Android JSON 解析关键代码
Android Json 解析其实还是蛮重要的知识点,为什么这么说呢,因为安卓通信大部分的协议都是使用 json 的方式传输,我知道以前大部分是使用的 xml ,但是时代在发展社会在进步,json 成 ...
- C++面向对象高级开发课程(第二周)
1. 类中含有指针—— class with pointer member(s) ——的情况经常发生,典型的有:string 类. 2. STL中的 string 类太复杂,copy on write ...
- 20145328《网络对抗技术》Final
系内选拔赛write-up 1 信息隐藏 第一题图片藏东西,后缀名改txt,没有发现,改rar,发现压缩包内存在key.txt,解压提示存在密码,尝试使用修复,得到key.txt,打开获取flag,S ...
- 20145330 《网络对抗》PC平台逆向破解:注入shellcode 和 Return-to-libc 攻击实验
20145330 <网络对抗>PC平台逆向破解:注入shellcode 实验步骤 1.用于获取shellcode的C语言代码 2.设置环境 Bof攻击防御技术 需要手动设置环境使注入的sh ...
- 20145315何佳蕾《网络对抗》MSF基础应用
20145315何佳蕾<网络对抗>MSF基础应用 实验过程记录 (1)一个主动攻击,ms08_067; 1.打开msfconsole 2.use exploit/windows/smb/m ...