1. Sub CreateTables()
  2. Dim Wb As Workbook
  3. Dim OpenWb As Workbook
  4. Dim Sht As Worksheet
  5. Dim Rng As Range
  6. Dim Arr As Variant
  7. Dim i As Long
  8. Const HEAD_ROW As Long = 2
  9. Dim EndRow As Long
  10.  
  11. '模板文件名和路径
  12. Const ModelName As String = "社+名.xlsx"
  13. Dim ModelPath As String
  14. '生成文件名和路径
  15. Dim NewName As String
  16. Dim NewPath As String
  17.  
  18. Set Wb = Application.ThisWorkbook
  19. Set Sht = Wb.Worksheets("明细表")
  20.  
  21. ModelPath = Wb.Path & "\模板\" & ModelName '社+名的完整路径
  22.  
  23. With Sht
  24. EndRow = .Cells(.Cells.Rows.Count, "A").End(xlUp).Row
  25. '内置方法,返回A列最后一个非空单元格行号
  26.  
  27. Set Rng = .Range(.Cells(HEAD_ROW + 1, "A"), .Cells(EndRow, "I"))
  28. '引用区域,左上角单元格,右下角单元格,这样就获取数据区域了 自己领悟一下就知道了
  29.  
  30. Arr = Rng.Value
  31. '存在一个数组里面,这样速度好很多
  32. '和单元格区域是一样的。只是它只有数据,没有框框颜色字体什么的,所以用起来很快
  33.  
  34. Set OpenWb = Application.Workbooks.Open(ModelPath)
  35. '打开模板文件
  36.  
  37. For i = LBound(Arr) To UBound(Arr) '从第一行到最后一行,逐行循环
  38. 'arr相当于是一个有行列结构的数组,和单元格区域是一样的。Lbound可以取到开始行,Ubound可以取到结束行
  39.  
  40. '开始构建新文件名
  41. NewName = Arr(i, 9) & "-" & Arr(i, 2) & ".xlsx"
  42. 'i是可变的,9就是第I列 经办行,2就是第B列的客户名称,新文件名就弄好了
  43. NewPath = Wb.Path & "\生\" & NewName
  44. '新文件名的完整路径 就构造好了
  45.  
  46. '开始填表
  47. '这里就做两个示范,剩下的你自己填就知道了
  48. '第一个sheet
  49. OpenWb.Worksheets("(一)档案封皮").Range("B13").Value = Arr(i, 2) '借款人
  50. OpenWb.Worksheets("(一)档案封皮").Range("A23").Value = Arr(i, 9) '经办行
  51.  
  52. OpenWb.Worksheets("(二)债务主体认定书").Range("B4").Value = Arr(i, 2) '经办行
  53. OpenWb.Worksheets("(二)债务主体认定书").Range("B5").Value = "'" & Arr(i, 1) '贷款号
  54. '注意注意注意 长数字 前面一定要加上 "'" & ,这样防止后面三位数字变成 000
  55.  
  56. '************剩下自己弄
  57.  
  58. OpenWb.SaveCopyAs NewPath '填完就另存副本
  59.  
  60. Next i
  61.  
  62. OpenWb.Close False '关掉模板
  63. End With
  64.  
  65. '释放对象,告诉内存,这些东东我不要了,不然一直占着内存
  66. Set Wb = Nothing
  67. Set OpenWb = Nothing
  68. Set Sht = Nothing
  69. Set Rng = Nothing
  70. Erase Arr '擦除数组
  71.  
  72. End Sub

  

20170727xlVBA根据数据表和模板工作簿生成个人明细表工作簿的更多相关文章

  1. 20170731xlVba根据数据表和模板表生成新表

    Public Sub SplitData() Dim Wb As Workbook Dim Sht As Worksheet Dim NewSht As Worksheet Dim arr As Va ...

  2. MySQL数据表更新模板

    -- ---------------------------- -- 新增表 -- ---------------------------- CREATE TABLE `biz_circle_lead ...

  3. SqlProfilter监控指定数据库数据表——监控linq组合查询生成的sql

    1.例子 实际测试环境中往往很多测试都在调用数据库,那么如何使用SqlProfilter监控筛选到自己想要监看的数据库对应的表有关linq生成的sql时候就需要做如下设置了 ........... u ...

  4. 帝国cms数据表详细说明

    表 名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_infotmp_news 采集临时表 phome_ecms_news 新闻主数据记录表 ph ...

  5. 帝国cms数据表中文说明

    本文介绍下,帝国cms中各数据表的用途,有需要的朋友,参考下吧. 帝国cms各数据表及用途说明. phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_info ...

  6. 帝国empirecms数据库数据表详细说明

    表名   解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_infotmp_news 采集临时表 phome_ecms_news 新闻主数据记录表 p ...

  7. 帝国CMS数据库数据表详细说明

    表名                                             解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_inf ...

  8. laravel5Eloquent模型与数据表的创建

    下面是有关管理员模型与表的创建 生成模型时同时生成数据库迁移文件 在生成的迁移文件中添加字段 运行命令行生成数据表 命令进行混合运用 生成工厂文件,数据填充文件 工厂模型代码 数据填充文件代码 数据填 ...

  9. EXCEL 如何将多个工作表或工作簿合并到一个工作表

    在使用Excel 时,我们经常需要将多个工作表或工作簿合并到一个工作表中,这样我们就能快速地对数据进行分析和统计.对于一般用户而言,除了复制每个工作表后再粘贴,没有其他什么方法了.如果只是合并少数几个 ...

随机推荐

  1. MySQL从删库到跑路_高级(三)——视图

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.视图简介 1.视图简介 视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式.视图包含 ...

  2. python requests 请求的封装

    #encoding=utf-8import requestsimport jsonclass HttpClient(object):    def __init__(self):        pas ...

  3. MAC安装最新datagrip之后无法非官方激活,而且启动过慢

    由于之前安装过,更新最新版本之后发现不能使用(http://xidea.online)激活??? 解决方法:使用CleanMyMac等相应软件删除之后,还要去相应的保存记录的路径(/Users/用户名 ...

  4. python的os模块和sys模块

    os模块 os.getcwd()  获取当前的工作目录 os.chdir('绝对路径/相对于当前工作目录的路径')  改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir ...

  5. JS获取周、月、季度日期

    效果: 代码: //用于获取日期本周.本月.本季度的js //Author : guanghe //文件引用方法:<script src="${staticPath}/common/j ...

  6. Android JSON 解析关键代码

    Android Json 解析其实还是蛮重要的知识点,为什么这么说呢,因为安卓通信大部分的协议都是使用 json 的方式传输,我知道以前大部分是使用的 xml ,但是时代在发展社会在进步,json 成 ...

  7. C++面向对象高级开发课程(第二周)

    1. 类中含有指针—— class with pointer member(s) ——的情况经常发生,典型的有:string 类. 2. STL中的 string 类太复杂,copy on write ...

  8. 20145328《网络对抗技术》Final

    系内选拔赛write-up 1 信息隐藏 第一题图片藏东西,后缀名改txt,没有发现,改rar,发现压缩包内存在key.txt,解压提示存在密码,尝试使用修复,得到key.txt,打开获取flag,S ...

  9. 20145330 《网络对抗》PC平台逆向破解:注入shellcode 和 Return-to-libc 攻击实验

    20145330 <网络对抗>PC平台逆向破解:注入shellcode 实验步骤 1.用于获取shellcode的C语言代码 2.设置环境 Bof攻击防御技术 需要手动设置环境使注入的sh ...

  10. 20145315何佳蕾《网络对抗》MSF基础应用

    20145315何佳蕾<网络对抗>MSF基础应用 实验过程记录 (1)一个主动攻击,ms08_067; 1.打开msfconsole 2.use exploit/windows/smb/m ...