范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

VBA收集Word关键字批量处理

  批量对关键字打标记(文件夹遍历)Option Explicit Private Const FINISHED_FILE_PATH As String = "newData"         " 存完成文件的目录名 Private Const ERROR_FILE_PATH As String = "errorData"          " 存出错文件的目录名 Private Const SKIP_FILE_PATH As String = "skipData"            " 存跳过文件的目录名 Private Const ERROR_FILE_SUFFIX As String = "Err.log"           " 出错日志后缀 Private Const SKIP_FILE_SUFFIX As String = "Skip.log"           " 跳过日志后缀 Dim fs As Object                                                " 文件系统对象 Dim errLogFile As String                                        " 错误日志 Dim skipLogFile As String                                       " 跳过记录的日志 Dim sourceFilePath As String                                    " 选择要处理的文件所在   Sub 遍历文件夹中对文档的关键字打标记()     On Error GoTo ErrorHandler           Dim CurrPath$, CurrFile$, currDoc As Document, keyArray() As String, fileNameExtension As String, newPath As String, skipPath As String, errPath As String, tempFileName As String     " --------- 初始化 开始 ----------     " 选择要处理的文件所在     If Not SelectFolder() Then Exit Sub     If MsgBox("要处理的文件在:" & sourceFilePath, vbYesNo + vbInformation, "确认源文件目录") <> vbYes Then Exit Sub     CurrPath = ThisDocument.path & ""     errLogFile = CurrPath & Replace(ThisDocument.Name, ".docm", ERROR_FILE_SUFFIX)     skipLogFile = CurrPath & Replace(ThisDocument.Name, ".docm", SKIP_FILE_SUFFIX)     " 准备文件夹     newPath = CurrPath & FINISHED_FILE_PATH     skipPath = CurrPath & SKIP_FILE_PATH     errPath = CurrPath & ERROR_FILE_PATH     If Dir(newPath, vbDirectory) = vbNullString Then MkDir newPath     If Dir(skipPath, vbDirectory) = vbNullString Then MkDir skipPath     If Dir(errPath, vbDirectory) = vbNullString Then MkDir errPath     " 初始化文件系统对象     Set fs = CreateObject("Scripting.FileSystemObject")     " --------- 初始化 结束 ----------          CurrFile = Dir(sourceFilePath)      Do Until CurrFile = ""         If CurrFile <> ThisDocument.Name And (Right(CurrFile, 5) = ".docx" Or Right(CurrFile, 4) = ".doc") Then             tempFileName = sourceFilePath & CurrFile             Set currDoc = Documents.Open(tempFileName, Visible:=False)             " 找到关键字的,另存一份到 newPath 下             If 对关键字打标记(currDoc, ThisDocument) Then                 currDoc.SaveAs2 FileName:=newPath & CurrFile, FileFormat:=wdFormatXMLDocument                 Kill tempFileName                 currDoc.Close wdDoNotSaveChanges                 Set currDoc = Nothing                 "DoEvents             Else                 currDoc.Close wdDoNotSaveChanges                 Set currDoc = Nothing                 skiplog tempFileName                 Call moveFile(tempFileName, skipPath & CurrFile)             End If             End If NextFile:         CurrFile = Dir()     Loop          Set fs = Nothing     Call MsgBox("处理完毕", vbOKOnly + vbInformation, "温馨提示") Exit Sub ErrorHandler:     errlog "================================================================================"     errlog "【错误文件】" & tempFileName     errlog Err.Number & ":" & Replace(Err.Description, vbLf, " vbCrLf ")     Call moveFile(tempFileName, errPath & CurrFile)     Resume NextFile End Sub 写日志" 写日志 Sub errlog(logMsg As String)     Shell "cmd.exe /c echo " & Format(Now, "YYYY-MM-DD HH:MM:SS") & " ===》 " & logMsg & " >> " & errLogFile End Sub  Sub skiplog(logMsg As String)     Shell "cmd.exe /c echo " & logMsg & " >> " & skipLogFile End Sub 移动文件" 移动文件 Sub moveFile(sourcePath As String, targetPath As String)     On Error GoTo ErrorHandler     Call fs.moveFile(sourcePath, targetPath) Error_Handler_Exit:     Exit Sub Exit Sub ErrorHandler:     errlog "================================================================================"     errlog "【移动文件失败】" & sourcePath     errlog Err.Number & ":" & Replace(Err.Description, vbLf, " vbCrLf ") Resume Error_Handler_Exit End Sub 选择目录Function SelectFolder()     With Application.FileDialog(msoFileDialogFolderPicker)         .InitialFileName = ThisDocument.path & ""         If .Show = -1 Then " OK返回 -1,Cancel 返回 0             sourceFilePath = .SelectedItems(1) & ""             SelectFolder = True         Else             SelectFolder = False         End If     End With End Function 对关键字打标记(查找替换)
  注意:如果是  .Execute Replace:=wdReplaceOne   (替换第一个), 那么 With doc.Content.Find   就要放到循环里面了。否则会出现意外丢失的情况! :比如: ABA  先搜 B  ,再搜 A  ,替换的不是第一个 A  用是第二个 A  。未仔细研究根源,仅此备注。 Function 对关键字打标记(doc As Document, MainDoc As Document)     Dim i As Integer, keyArrLen As Integer, keyArray() As String, styleName As String, edited As Boolean          edited = False " 默认未编辑状态     keyArray = 获取关键字(MainDoc)     keyArrLen = UBound(keyArray)     styleName = 创建样式(doc)         With doc.Content.Find        .ClearFormatting        .Replacement.ClearFormatting        .Replacement.style = styleName        .Replacement.Text = "^&"        .Forward = True        .Wrap = wdFindContinue        " 遍历查找关键字,并标示         For i = 0 To keyArrLen             .Text = keyArray(i)             .Execute Replace:=wdReplaceAll             " 找到了关键字,标记为编辑过。             If .Found Then                 edited = True             End If         Next     End With          对关键字打标记 = edited End Function 创建样式Function 创建样式(doc As Document)     On Error Resume Next " 出错时忽略,继续向下运行。     " 判断样式,不存在则创建     Dim flag As Boolean, syte As style, styleName As String     styleName = "关键字"          flag = True     For Each syte In doc.Styles         If syte.NameLocal = styleName Then             flag = False         End If     Next          If flag Then         doc.Styles.Add Name:=styleName, Type:=wdStyleTypeCharacter         With doc.Styles(styleName).Font             .NameFarEast = "微软雅黑"             .Bold = True             .Color = wdColorYellow             .Shading.ForegroundPatternColor = wdColorAutomatic             .Shading.BackgroundPatternColor = wdColorRed         End With     End If          创建样式 = styleName End Function 获取关键字(动态数组)Function 获取关键字(doc As Document)     Dim keyArray() As String, arrLen As Integer, pgs As Paragraphs, i As Integer     " 取当前文档所有段落     Set pgs = doc.Paragraphs     arrLen = pgs.Count - 1     " 重置动态数组的长度     ReDim keyArray(arrLen) As String      " 遍历段落,将文字加入数组     For i = 0 To arrLen         keyArray(i) = Replace(Trim(pgs(i + 1).Range.Text), vbCr, "")     Next      获取关键字 = keyArray End Function 参考资料
  Excel、Word VBA 学习笔记_笑虾的博客-CSDN博客
  VBA操作文件和文件夹步骤_w3cschool
  VBA 收集 Word关键字批量处理-Excel版_笑虾的博客-CSDN博客_vba word 查找关键字

华为Mate30Pro电影四摄再次深耕影像,再创不可能10月伊始,最受瞩目的除了阅兵式,应该就是国庆档上映的献礼大片我和我的祖国。而在这个让人动容的电影,片尾MV出现的由华为Mate30Pro拍摄的视频片段,引起了众多观众的注意,很多为什么同事总能步步高升?原因竟然是他选择了一汽大众新迈腾在当今社会处处充满竞争,如果你落后一步就会步步落后。同样在汽车行业也是如此,但是一汽大众却能始终引领行业潮流,特别其旗下的新迈腾这款车型在商务车中更是标杆的存在。如果你也想在你的行同盾科技蒋韬心存敬畏,向善而行同盾科技CEO蒋韬发布公开信,侧面回应了一些关于同盾科技的谣言,也表达了他对于数据分析与应用行业未来发展的认知。近日,多家大数据风控服务提供商传出高管协助调查或公司查封爬虫业务终止网红JEET蓝牙耳机凭什么走红运动圈,引发疯狂种草?最近,JEET蓝牙耳机在运动圈内爆火,众多运动达人们纷纷疯狂种草。而品牌推出的顶配级旗舰机皇更是被用户冠以断货王之称!既不是国际大牌,也没有明星代言,更没有大肆广告炒作博眼球,那么国米乔府大院新品上市发布会圆满完成五常大米产业发展路途中,五常市人民政府从未停止探索与努力。从1993年提出绿色战略口号到2015年通过三确一检一码建立起五常大米全产业链可追溯体系再到2019年与金融大数据等平台合势头太猛!沃尔沃全新S60现身多次就卖20多万近日,最近沃尔沃全新S60这款车的关注度很高,那么我们就来简单介绍一下,新车有丰富的配置,助力年轻一代更好地出行。这次沃尔沃全新S60搭载斯堪的纳维亚设计,虽然并未对前脸部分的造型历史性一刻!海宁杭海新城纳入杭州钱塘新区战略规划范围2019年10月23日,海宁迎来历史性一刻!杭州钱塘新区与海宁市政府签署了全面战略合作协议,海宁杭海新区纳入钱塘新区战略规划范围。由此开始,杭州钱塘新区和海宁市将共同打造省跨行政区说实话,我愿意把这个低调的神器安利给全世界给你们说个好玩的,去看个电影,把结束时间记成入场时间了,我特么本来心情就有点不太美丽,电影院又全是一对一对的,心情就更糟糕了。还不如回家看电视。正好红米70寸价格屠夫发布了,等开售看完这几点,你说沃尔沃性价比高不高?在国内汽车市场中,以有气派有面子空间大等特点的车型层出不穷。但是随着汽车消费的多元化,在豪华车车领域沃尔沃会是众多消费者的首选车型。除了造型设计空间舒适与动力性能这样的基本要素外,新迈腾成为商务人士们心中的佳选车型,靠的就是实力新迈腾作为市场中B级车的最新标杆之一,如今以在广州车展上出展。新迈腾不仅在外观上较上一版本有了很大的改观,在内饰和配置上也进行了大的变化。如今的新迈腾处处体现着他的运动风格和商务风这是真的!百公里油耗6。6新迈腾绿水青山就是金山银山!时代的浪潮向前推进,低碳出行顺应时代,新迈腾当然义不容辞。充分响应时代号召,与时代发展紧紧相连,强大动力组合的实力超越其它商务车型,全新设计的变速箱匹配不同功
走进特斯拉超级工厂点击右上角加关注,全国产经信息不错过在经历了一轮轮舆情风波后,特斯拉变得更加开放了。5月26日,记者开启了一场上海特斯拉超级工厂之旅,零距离感受这家创业公司的氛围。作为中国第一家外618值得入手的四款顶级旗舰,跌至新低价,几乎都是0差评时间一下子就来到了6月初,厂商们为了给618造势,也是放出了很多优惠,其目的就是刺激消费者的购买欲望,提升自家618的销量,但其中有些是提高价格后再降价,作为消费者一定要学会分辨,中国开始推广数字人民币,它能撼动美元地位?你敢用吗?近年来,网络支付已经在全中国普及,男女老少都会使用支付宝或者微信付款,而且全世界也只有中国,如此大范围地推广和使用网络支付。当欧美国家的国民还在用现金支付时,我们就算是在早餐时买两深度关注鸿蒙会带来什么中央纪委国家监委网站管筱璞李云舒6月3日,上海用户在华为全球旗舰店内体验鸿蒙操作系统。(图片来源视觉中国)设想一下,你在汽车上语音通话,熄火下车后可以把通话转移到手机,走到家门口再小米婉拒,前OPPO员工辱骂,荣耀华为做手机,他们就不会用鸿蒙华为的鸿蒙系统已经于昨日正式发布,虽然在手机应用和生态方面华为目前稍微有些逊色,但对于一个初生系统来说,这已经算是了不起的成就,而华为也通过鸿蒙系统向未来的无限互联踏出了第一步。想特斯拉Model3劲敌宝马i4实车亮相近日,海外媒体又曝光出了宝马i4的实车图。新车预计将在2022年第一季度正式登陆北美市场,其中i4eDrive40的起售价为55400美元(折合人民币约35。35万元),而i4M5全新的开始,荣耀50系列新机发布会定档,荣耀已经拿到安卓授权告别过去,迎接未来,完成过渡的王者荣耀正式迎来新生。旗下首款重磅产品荣耀50系列官宣定档,主打特色化卖点。荣耀也回应了近期网络争议的问题。华为和荣耀,之前在国内市场和海外市场正在疯iPhone13电池容量曝光,网友难怪12续航缩水,为新机做铺垫?苹果更新iOS14。5系统后遇到重大Bug,全球多地用户反映出现严重卡顿发热性能暴跌。苹果推出iOS14。6紧急救场。iOS14。6修复以上问题改善性能,新的问题出现续航明显变弱,618别观望了,中低端机就选这几款今年的618开启的格外早,各大手机厂商打的也是格外热闹。面对琳琅满目的手机产品,好多人又犯了选择困难症,一时间不知道怎么选,纠结ing。今天我们就以低预算为标准,推荐几款。一一加O昨夜今晨发生了什么?YiMagazine宁德时代计划在上海建新电池工厂据路透社6月3日报道,知情人士透露,宁德时代正计划在上海新建一家大型汽车电池工厂,继续其迅猛的扩张步伐,此举也将巩固其作为全球第一大电池供应商的领先地等等党又赢了!618来袭一加9R到手价只需2799元进入到6月份,也就是说一年一度的618年中狂欢即将打响。作为等等党,我们要做的就是备足弹药准备淘宝一波。而商家要做的就是为了在于其他商家的竞争中取得优势,放出更多的福利,在手机圈也