【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.pswp.cn/web/65975.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65975.shtml
英文地址,請注明出處:http://en.pswp.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…