【WPS】【WORDEXCEL】【VB】实现微软WORD自动更正的效果

1. 代码规范方面

  • 添加 Option Explicit:强制要求显式声明所有变量,这样可以避免因变量名拼写错误等情况而出现难以排查的逻辑错误,提高代码的健壮性。
  • 使用 On Error GoTo 进行错误处理:通过设置错误处理机制,当代码执行过程中出现错误时,能够跳转到指定的错误处理代码段(ErrorHandler 标签处),在那里可以进行合适的处理,比如弹出错误提示消息框告知用户错误信息,同时尽量释放已经占用的资源(如关闭 Excel 相关对象),避免因错误导致程序异常退出而留下资源占用等问题。

2. 查找替换操作细化方面

  • 使用 With 语句设置 Find 对象属性:在进行查找替换操作时,使用 With 语句可以更简洁清晰地对 Find 对象的多个属性进行设置,包括设置查找文本(.Text)、替换文本(.Replacement.Text)以及其他如查找方向(.Forward)、超出范围处理方式(.Wrap)、是否查找格式(.Format)以及匹配相关的属性(.MatchCase.MatchWholeWord.MatchWildcards 等)。这样代码结构更加清晰,便于理解和后续维护,同时可以方便地根据实际需求调整这些查找替换的具体规则。
Option Explicit '强制要求显式声明变量,避免因变量名拼写错误等导致的潜在问题Sub ReplaceWithExcelData()'定义常量,确保替换方式常量正确定义Const wdReplaceAll = 2Const wdMatchCase = False '设置查找时不区分大小写,可根据实际需求调整Const wdMatchWholeWord = False '设置不要求全字匹配,可根据实际需求调整Const wdMatchWildcards = False '设置不使用通配符匹配,可根据实际需求调整Dim xlApp As ObjectDim xlBook As ObjectDim xlSheet As ObjectDim wordRange As RangeDim i As LongDim findText As StringDim replaceText As StringOn Error GoTo ErrorHandler '设置错误处理,当出现错误时跳转到ErrorHandler标签处执行错误处理代码'创建Excel应用程序对象并打开工作簿Set xlApp = CreateObject("Excel.Application")xlApp.Visible = False '设置Excel不可见,可根据需求调整为True查看Excel操作情况Set xlBook = xlApp.Workbooks.Open(ThisDocument.Path & "\1.xlsx") '根据实际路径调整,这里假设同文件夹Set xlSheet = xlBook.Sheets(1) '假设数据在第一个工作表,如果不是需修改索引Set wordRange = ActiveDocument.Content '针对整个文档内容进行查找替换操作,可按需修改范围,比如仅针对选中部分等For i = 1 To 1000 '假设你的数据范围是A1:B10,共10行,如果实际更多或更少要相应修改findText = Trim(xlSheet.Cells(i, 1).Value) '去除两端空格replaceText = Trim(xlSheet.Cells(i, 2).Value)With wordRange.Find '使用With语句简化对Find对象属性的设置.Text = findText.Replacement.Text = replaceText.Forward = True '设置查找方向为向前,一般默认也是向前,可根据需求调整.Wrap = wdFindContinue '设置查找范围超出文档末尾时的处理方式.Format = False '不查找格式,只查找文本内容,可根据需求调整.MatchCase = wdMatchCase '应用不区分大小写的设置.MatchWholeWord = wdMatchWholeWord '应用不要求全字匹配的设置.MatchWildcards = wdMatchWildcards '应用不使用通配符匹配的设置.Execute Replace:=wdReplaceAllEnd WithNext i'正常执行完后关闭Excel相关对象释放资源xlBook.Close SaveChanges:=False '关闭Excel文件,不保存更改(如果需要保存更改可设为True)xlApp.QuitSet xlSheet = NothingSet xlBook = NothingSet xlApp = NothingExit Sub '正常退出程序,避免进入错误处理代码块后继续执行后面的代码ErrorHandler:MsgBox "程序出现错误,错误信息:" & Err.Description, vbCritical '弹出错误消息框显示错误信息'如果出现错误,也要尽量关闭Excel相关对象释放资源,避免资源占用On Error Resume Next '忽略下面代码可能出现的错误,确保资源释放代码执行xlBook.Close SaveChanges:=FalsexlApp.QuitSet xlSheet = NothingSet xlBook = NothingSet xlApp = NothingOn Error GoTo 0 '恢复正常的错误处理机制
End Sub

3. 测试

  • 1.xlsx文件如下:
  • 2-副本.docm文件如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka 分区管理

分区是主题的子集,每个主题可以被分割成多个分区,一个分区有一个主副本(Leader)及一个或多个从(Follower)副本。分区允许将数据分布在多个broker上,这样可以提高数据的处理能力、并行性及可靠性…

ES6的高阶语法特性

一、模板字符串的高级用法 1.1.模板字符串的嵌套 模板字符串的嵌套允许在一个模板字符串内部再嵌入一个或多个模板字符串。这种嵌套结构在处理复杂数据结构或生成具有层级关系的文本时非常有用。 1. 嵌套示例 假设我们有一个包含多个对象的数组,每个对象都有名称、…

Linux 容器漏洞

定义:Linux 容器漏洞是指在容器技术(如 Docker、LXC 等)运行环境中存在的安全弱点。这些漏洞可能存在于容器镜像本身、容器运行时(如 runc)、容器编排工具(如 Kubernetes)或者容器与主机之间的交…

【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis

以人物为中心的主体到图像的高保真合成,CVPR2024 code:CodeGoat24/Face-diffuser: [CVPR2024] Official implementation of High-fidelity Person-centric Subject-to-Image Synthesis. paper:2311.10329 背景 研究问题:这篇文…

详解如何自定义 Android Dex VMP 保护壳

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 前言 Android Dex VMP(Virtual Machine Protection,虚拟机保护)壳是一种常见的应用保护技术,主要用于保护 And…

基于华为atlas的重车(满载)空车(空载)识别

该教程主要是想摸索出华为atlas的基于ACL的推理模式。最终实现通过煤矿磅道上方的摄像头,识别出车辆的重车(满载)、空车(空载)情况。本质上是一个简单的检测问题。 但是整体探索过程比较坎坷,Tianxiaomo的…

《零基础Go语言算法实战》【题目 2-25】goroutine 的执行权问题

《零基础Go语言算法实战》 【题目 2-25】goroutine 的执行权问题 请说明以下这段代码为什么会卡死。 package main import ( "fmt" "runtime" ) func main() { var i byte go func() { for i 0; i < 255; i { } }() fmt.Println("start&quo…

IntelliJ IDEA中Maven项目的配置、创建与导入全攻略

大家好&#xff0c;我是袁庭新。 IntelliJ IDEA是当前最流行的Java IDE&#xff08;集成开发环境&#xff09;之一&#xff0c;也是业界公认最好用的Java开发工具之一。IntelliJ IDEA支持Maven的全部功能&#xff0c;通过它我们可以很轻松地实现创建Maven项目、导入Maven项目、…

TypeScript语言的学习路线

TypeScript语言的学习路线 TypeScript&#xff08;TS&#xff09;是由Microsoft开发的一种开源编程语言&#xff0c;是JavaScript的超集&#xff0c;提供了严格的类型检查和基于类的面向对象编程特性。随着前端开发的不断进步&#xff0c;TypeScript逐渐成为了现代前端开发的主…

计算机网络之---静态路由与动态路由

静态路由 静态路由是由网络管理员手动配置并固定的路由方式。路由器通过静态配置的路由条目来转发数据包&#xff0c;而不会自动调整。它不依赖于任何路由协议。 特点&#xff1a; 手动配置&#xff1a;网络管理员需要手动在路由器中配置每条静态路由。不自动更新&#xff1a;…

【Rust】函数

目录 思维导图 1. 函数的基本概念 1.1 函数的定义 2. 参数的使用 2.1 单个参数的示例 2.2 多个参数的示例 3. 语句与表达式 3.1 语句与表达式的区别 3.2 示例 4. 带返回值的函数 4.1 返回值的示例 4.2 返回值与表达式 5. 错误处理 5.1 错误示例 思维导图 1. 函数…

Cython全教程2 多种定义方式

—— 本篇文章&#xff0c;主要讲述Cython中的四种定义关键字 全教程2 多种定义方式&#xff1a; 在Cython中&#xff0c;关于定义的关键字有四个&#xff0c;分别是&#xff1a; cdef、def、cpdef、DEF 一、cdef定义关键字 顾名思义&#xff0c;cdef关键字定义的是一个C函数…

Web开发(一)HTML5

Web开发&#xff08;一&#xff09;HTML5 写在前面 参考黑马程序员前端Web教程做的笔记&#xff0c;主要是想后面自己搭建网页玩。 这部分是前端HTML5CSS3移动web视频教程的HTML5部分。主要涉及到HTML的基础语法。 HTML基础 标签定义 HTML定义 HTML(HyperText Markup Lan…

MATLAB学习笔记目录

MATLAB学习笔记-生成纯音并保存-CSDN博客 MATLAB学习笔记-各种格式之间的转换 - 知乎 MATLAB学习笔记-胞组&#xff08;cell array&#xff09;转换为矩阵&#xff0c;cell2mat_matlab如何把元胞数组改为矩阵-CSDN博客MATLAB学习笔记-判断数组、结构体、数值、字符串是否相同…

Java-数据结构-栈与队列(常考面试题与单调栈)

在上一篇的学习中&#xff0c;我们学习了栈和队列的基本知识&#xff0c;以及它们对应都有哪些方法&#xff0c;在什么应用场景下如何使用&#xff0c;并且还对它们进行了模拟实现&#xff0c;而其实对于栈和队列的相关知识还远不止于此&#xff0c;而今天我们就对栈与队列进行…

JSON.stringify(res,null,2)的含义

JSON.stringify(res, null, 2) 是 JavaScript 中将对象转换为 JSON 字符串的方法&#xff0c;具体说明如下&#xff1a; 参数解释 res&#xff1a;要转换的对象。它可以是 JavaScript 中的任意类型&#xff0c;如对象、数组、字符串、数字等。例如&#xff0c;{name: "K…

Spring 项目 基于 Tomcat容器进行部署

文章目录 一、前置知识二、本地Idea运行Spring项目1. 将写好的 Spring 项目先打包成 war 包2. 查看项目工件&#xff08;Artifact&#xff09;是否存在3. 配置 Tomcat3.1 添加一个本地 Tomcat 容器3.2 将项目部署到 Tomcat 4. 运行项目 三、基于 Tomcat 部署及多实例部署1. Spr…

usbredir学习

文章目录 背景典型场景编译usbredirparserusbredirfilterusbredirparser/usbredirproto usbredirhostusbredirect/usbredirtestclient参考 背景 usbredir 是一种用于通过网络转发 USB 设备流量的网络协议。它也是一个软件包的名称&#xff0c;该软件包提供了一个解析库、一个 …

ESXI 安装教程(3) ---​vCenter Server 安装

不涉及复杂的操作此项可不安装 1.镜像加载到虚拟光盘 对应的网盘文件 2.打开文件路径 双击运行文件installer.exe 3.调整安装语言 4.点击安装 5. 6. 证书,有效问题导致此提示,非专业网络管理人员,不知道如何处理,此处点是即可 证书有效开始时间是安装时间8小时 证书有效结束…

【初识扫盲】逆概率加权

我们正在处理一个存在缺失数据的回归模型&#xff0c;并且希望采用一种非参数的逆概率加权方法来调整估计&#xff0c;以应对这种缺失数据的情况。 首先&#xff0c;我们需要明确问题的背景。我们有样本 { ( Y i , X i , r i ) : i 1 , … , n } \left\{\left(Y_i, \boldsym…