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含方框文档填表的更多相关文章

  1. 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)

    原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...

  2. 这可能是最详细的 iOS 学习入门指南(含书目/文档/学习资料)

    1 零基础小白如何进行 iOS 系统学习 首先,学习目标要明确: 其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走: 再次,学技术最重要的一点就是多动手. ...

  3. 阿里P7Java最全面试296题:阿里天猫、蚂蚁金服含答案文档解析

    [阿里天猫.蚂蚁.钉钉面试专题题目加答案] 不会做别着急:文末有答案以及视频讲解,架构师资料 1. junit用法,before,beforeClass,after, afterClass的执行顺序 ...

  4. jQuery LigerUI 最新版压缩包(含chm帮助文档、源码、donet权限示例)

    jQuery LigerUI 最新版压缩包 http://download.csdn.net/download/heyin12345/4680593 jQuery LigerUI 最新版压缩包(含ch ...

  5. ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...

  6. Java进阶(十九)利用正则表达式批处理含链接内容文档

    利用正则表达式批处理含链接内容文档 由于项目需求,自己需要将带有链接的标签去除,例如 <a href="/zhaoyao/17-66.html">头晕</a> ...

  7. 提取一个txt 文档中含指定字符串的所有行

    将一个txt 文档中含指定字符串内容的所有行提取出来并保存至新的txt文档中 例如,要提取 1.txt 中所有包含”aaa” 的行的内容 只需在此文件夹中新建一个bat文件,输入以下代码,双击运行,便 ...

  8. 介绍一款jquery ui组件gijgo(含tree树状结构、grid表格),特点:简易、文档全清晰易懂、示例代码

    http://gijgo.com   gijgo组件 特点:简易.文档全-虽然是英文的但是清晰易懂可读性强.含示例代码(后端直接用原生.Net C# MVC的哦!非常合.Net开发胃口),网站网速快, ...

  9. MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档)

    原文:http://download.csdn.net/download/jobfind/9559162 MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档).rar

随机推荐

  1. ORA-00980: 同义词转换不再有效

    客户账号TB在操作软件时,报错:“[Microsoft][ODBC driver for Oracle][Oracle]ORA-00980: 同义词转换不再有效”. 使用拥有dba权限的账号sys的登 ...

  2. ACM题目————困难的串

    题目描述 如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困难的串".例如,BB,ABCDACABCAB,ABCDABCD都是容易的串,而D,DC,ABDA ...

  3. Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在

    Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在 原因分析: 由于tomcat由7升级到8.5导致Base64的引用路径错误,默认引用为8.5中的jar, 解决方案: 修改引用 ...

  4. 根据wsdl,基于wsimport生成代码的客户端

    根据wsdl,基于wsimport生成代码的客户端 wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦. 局限性:wsimport   ...

  5. c++中类似于java jprofiler/eclispe memoryanalysis的性能以及内存分析工具

    visual studio有自带的,可以看MSDN,不过一般来说,我们比较关注linux下的,搜了下,比较好用的应该有gprof和valgrind,先记录,可参考如下: http://blog.csd ...

  6. Bootloader之uBoot简介

    本文转载自:http://blog.ednchina.com/hhuwxf/1915416/message.aspx 一.Bootloader的引入 从前面的硬件实验可以知道,系统上电之后,需要一段程 ...

  7. windows10下使用source insight出现"source insight program editor已停止工作"的问题

    一.背景 1.1 OS 版本 windows 10 1.2 source insight版本 source insight 3.50.0034 二.解决方案 删除"我的文档"下面的source ins ...

  8. 终于在nowcoder爆发了的懒惰

    题目 这类题目我实在忍不了了 Emma,随便做个nowcode比赛题吧,我在oj上也没找到 题意 求\(\sum_{L=1}^{n}\sum_{R=i}^{n}a[k](L<=k<=R)\ ...

  9. HDU1143 (递推)题解

    Tri Tiling Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  10. CodeForces Round #516 Div2 题解

    A. Make a triangle! 暴力... 就是给你三个数,你每次可以选一个加1,问最少加多少次能构成三角形 #include <bits/stdc++.h> #define ll ...