20170612xlVBA含方框文档填表
Sub mainProc()
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone 'Dim xlApp As Excel.Application
'Dim Wb As Excel.Workbook
'Dim Sht As Excel.Worksheet
Dim xlApp As Object
Dim Wb As Object
Dim sht As Object
Dim EndRow As Long
Dim Arr As Variant
Dim xlRng As Object 'Excel.Range Dim TmpDoc As Document
Dim NewName As String
Dim NewPath As String 'Set xlApp = New Excel.Application
Set xlApp = CreateObject("Excel.Application")
Set Wb = xlApp.Workbooks.Open(ActiveDocument.Path & "\附件4 党员基本信息汇总表.xls")
Set sht = Wb.Worksheets(1)
With sht
For i = 21 To 5 Step -1
If .Cells(i, 2).Value <> "" Then
EndRow = i
Exit For
End If
Next i
Set xlRng = .Range("A5:T" & EndRow)
Arr = xlRng.Value
End With Wb.Close False
xlApp.Quit Const TmpName As String = "采集表.doc" For i = LBound(Arr) To UBound(Arr)
Set TmpDoc = Application.Documents.Open(ActiveDocument.Path & "\" & TmpName)
TmpDoc.Activate '姓名
FindReplace "Name", Arr(i, 2)
'性别
If Arr(i, 5) = "男" Then
FindTrue = "nan"
FindFalse = "nv"
FindTrueAndFalse FindTrue, FindFalse
Else
FindTrue = "nv"
FindFalse = "nan"
FindTrueAndFalse FindTrue, FindFalse
End If
'民族
FindReplace "mz", Split(Arr(i, 6), " ")(1)
'身份证加框
FindText = "id"
InputText = Arr(i, 4)
FindAndInput FindText, InputText '出生日期
bir = Format(Arr(i, 7), "yyyy/mm/dd")
FindReplace "yyy1", Split(bir, "/")(0)
FindReplace "m1", Split(bir, "/")(1)
FindReplace "d1", Split(bir, "/")(2) '学历代码加框
FindText = "XL"
InputText = Split(Arr(i, 8), " ")(0)
FindAndInput FindText, InputText '正式预备
If Arr(i, 9) = "正式党员" Then
FindTrue = "zs"
FindFalse = "yb"
FindTrueAndFalse FindTrue, FindFalse
Else
FindTrue = "yb"
FindFalse = "zs"
FindTrueAndFalse FindTrue, FindFalse
End If
'党支部
FindReplace "dzb", Arr(i, 3) '加入日期
bir = Format(Arr(i, 10), "yyyy/mm/dd")
FindReplace "yyy2", Split(bir, "/")(0)
FindReplace "m2", Split(bir, "/")(1)
FindReplace "d2", Split(bir, "/")(2) '转正日期
bir = Format(Arr(i, 11), "yyyy/mm/dd")
FindReplace "yyy3", Split(bir, "/")(0)
FindReplace "m3", Split(bir, "/")(1)
FindReplace "d3", Split(bir, "/")(2) '工作岗位代号加框
FindText = "gzgw"
InputText = Split(Arr(i, 12), " ")(0)
FindAndInput FindText, InputText '手机号码加框
FindText = "cell"
InputText = Arr(i, 13)
FindAndInput FindText, InputText '区号加框
FindText = "zone"
InputText = Split(Arr(i, 14), "-")(0)
FindAndInput FindText, InputText '固话加框
FindText = "phone"
InputText = Split(Arr(i, 14), "-")(1)
FindAndInput FindText, InputText '家庭地址
FindReplace "adr", Arr(i, 15) '正常停止
If Arr(i, 16) = "正常" Then
FindTrue = "zc"
FindFalse = "tz"
FindTrueAndFalse FindTrue, FindFalse
Else
FindTrue = "tz"
FindFalse = "zc"
FindTrueAndFalse FindTrue, FindFalse
End If '是否失联
If Arr(i, 17) = "是" Then
FindTrue = "yes1"
FindFalse = "no1"
FindTrueAndFalse FindTrue, FindFalse
Else
FindTrue = "no1"
FindFalse = "yes1"
FindTrueAndFalse FindTrue, FindFalse
End If '失恋日期
If Arr(i, 17) = "是" Then
bir = Format(Arr(i, 18), "yyyy/mm")
FindReplace "yyy4", Split(bir, "/")(0)
FindReplace "m4", Split(bir, "/")(1)
Else
FindReplace "yyy4", ""
FindReplace "m4", ""
End If '是否流出
If Arr(i, 19) = "是" Then
FindTrue = "yes2"
FindFalse = "no2"
FindTrueAndFalse FindTrue, FindFalse
Else
FindTrue = "no2"
FindFalse = "yes2"
FindTrueAndFalse FindTrue, FindFalse
End If '流出省市县
If Arr(i, 19) = "是" Then FindReplace "sheng", Split(Arr(i, 20), "-")(0)
FindReplace "shi", Split(Arr(i, 20), "-")(1)
FindReplace "xian", Split(Arr(i, 20), "-")(2)
Else
FindReplace "sheng", ""
FindReplace "shi", ""
FindReplace "xian", ""
End If
NewName = Arr(i, 2) & "-" & TmpName
NewPath = ActiveDocument.Path & "\批量生成文件\" & NewName On Error Resume Next
Kill NewPath
On Error GoTo 0 TmpDoc.SaveAs2 NewPath
TmpDoc.Close Next i MsgBox "Done!"
Application.ScreenUpdating = True
Application.DisplayAlerts = wdAlertsAll
End Sub Sub FindTrueAndFalse(ByVal FindTrue As String, ByVal FindFalse As String) Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindTrue
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Execute Replace:=wdReplaceOne
Selection.InsertSymbol Font:="Wingdings 2", CharacterNumber:=-4014, Unicode:=True
End With Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindFalse
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Execute Replace:=wdReplaceOne
Selection.InsertSymbol Font:="宋体", CharacterNumber:=9633, Unicode:=True
End With End Sub
Public Sub FindAndInput(ByVal FindText As String, ByVal InputText As String)
Dim Rng As Range
Dim RngStart As Long, RngEnd As Long
Selection.HomeKey wdStory With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindText
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Execute Replace:=wdReplaceOne
RngStart = Selection.Start
For i = 1 To Len(InputText)
Selection.Collapse wdCollapseEnd
Selection.Range.ModifyEnclosure Style:=wdEncloseStyleSmall, Symbol:= _
wdEnclosureSquare, EnclosedText:=Mid(InputText, i, 1)
Selection.MoveRight wdCharacter, 1
Next i
RngEnd = Selection.Start
Set Rng = ActiveDocument.Range(RngStart, RngEnd)
SetFont Rng
End With
Set Rng = Nothing
End Sub
Public Sub SetFont(ByVal Rng As Range)
With Rng.Font
.Name = "黑体"
.Size = 14
End With
End Sub
Public Sub FindReplace(ByVal FindText As String, ByVal RepText As String)
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindText
.Replacement.Text = RepText
.Forward = True
.Wrap = wdFindStop
.Execute Replace:=wdReplaceOne
End With
End Sub
20170612xlVBA含方框文档填表的更多相关文章
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)
原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...
- 这可能是最详细的 iOS 学习入门指南(含书目/文档/学习资料)
1 零基础小白如何进行 iOS 系统学习 首先,学习目标要明确: 其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走: 再次,学技术最重要的一点就是多动手. ...
- 阿里P7Java最全面试296题:阿里天猫、蚂蚁金服含答案文档解析
[阿里天猫.蚂蚁.钉钉面试专题题目加答案] 不会做别着急:文末有答案以及视频讲解,架构师资料 1. junit用法,before,beforeClass,after, afterClass的执行顺序 ...
- jQuery LigerUI 最新版压缩包(含chm帮助文档、源码、donet权限示例)
jQuery LigerUI 最新版压缩包 http://download.csdn.net/download/heyin12345/4680593 jQuery LigerUI 最新版压缩包(含ch ...
- ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/ 谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...
- Java进阶(十九)利用正则表达式批处理含链接内容文档
利用正则表达式批处理含链接内容文档 由于项目需求,自己需要将带有链接的标签去除,例如 <a href="/zhaoyao/17-66.html">头晕</a> ...
- 提取一个txt 文档中含指定字符串的所有行
将一个txt 文档中含指定字符串内容的所有行提取出来并保存至新的txt文档中 例如,要提取 1.txt 中所有包含”aaa” 的行的内容 只需在此文件夹中新建一个bat文件,输入以下代码,双击运行,便 ...
- 介绍一款jquery ui组件gijgo(含tree树状结构、grid表格),特点:简易、文档全清晰易懂、示例代码
http://gijgo.com gijgo组件 特点:简易.文档全-虽然是英文的但是清晰易懂可读性强.含示例代码(后端直接用原生.Net C# MVC的哦!非常合.Net开发胃口),网站网速快, ...
- MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档)
原文:http://download.csdn.net/download/jobfind/9559162 MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档).rar
随机推荐
- MySQL从删库到跑路(六)——SQL插入、更新、删除操作
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录的值. IN ...
- 代码静态检查Eclipse插件:SonarLint插件离线安装
Eclipse Version: Oxygen.3a Release (4.7.3a)Myeclipse版本: 10.7 SonarLint 插件离线安装包:org.sonarlint.eclipse ...
- 在HTML中实现和使用遮罩层
Web页面中使用遮罩层,可防止重复操作,提示loading:也可以模拟弹出模态窗口. 实现思路:一个DIV作为遮罩层,一个DIV显示loading动态GIF图片.在下面的示例代码中,同时展示了如何在i ...
- C++系统时间及字符串转换参考资料
https://msdn.microsoft.com/en-us/library/a442x3ye.aspx https://msdn.microsoft.com/en-us/library/fe06 ...
- python的时间处理-time模块
time模块 时间的表示方法有三种: 时间戳:表示的是从1970年1月1日0点至今的秒数 格式化字符串表示:这种表示更习惯我们通常的读法,如2018-04-24 00:00:00 格式化元祖表示:是一 ...
- Python Web学习笔记之并发编程的孤儿进程与僵尸进程
1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊.今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上 ...
- 移动互联网消息推送原理:长连接+心跳机制(MQTT协议)
互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了 ...
- C++面向对象高级开发课程(第一周)
0. 内存分区 计算机中的内存在用于编程时,被人为的进行了分区(Segment),分为: -“栈区”(Stack) -“堆区”(Heap) -全局区(静态 区,Static) -文字常量区和程序代码区 ...
- 《课程设计》——cupp的使用
<课程设计>--cupp的使用 cupp简介 cupp是强大的字典生成脚本.它是一款用Python语言写成的可交互性的字典生成脚本.尤其适合社会工程学,当你收集到目标的具体信息后,你就可以 ...
- uva 1658 Admiral - 费用流
vjudge传送门[here] 题目大意:给一个有(3≤v≤1000)个点e(3≤e≤10000)条边的有向加权图,求1~v的两条不相交(除了起点和终点外没有公共点)的路径,使权值和最小. 正解是吧2 ...