利用字典及查找替換,將Excel信息與Word模板組合

2021-01-08 VBA語言專家

大家好,我們今日講解「VBA信息獲取與處理」教程中第十五個專題「將Excel數據信息傳遞給WORD應用」的第四節「利用字典及查找替換,將Excel信息與Word模板組合」,這個專題是非常實用的知識點,希望大家能掌握利用。教程會提供配套的程序文件。

第四節 利用字典及查找替換,將Excel信息與Word模板組合

大家好,我們這節繼續學習處理EXCEL信息,實現的目的和上一講一樣,就是提取信息後用於在WORD模板中輸出。在上一講中我們利用了MailMerge方法,很多資料上翻譯此方法為郵件合併,從字面上看也是對的,但不能完全表示這種方法的功能。這裡我姑且不做翻譯了,就用英文的表達好了。這種方法雖然完成了我們的目的,但是有著很多的不足,首先是代碼複雜、不易懂,特別是對於這種方法不是很熟悉的朋友;其次,參數眾多,難免會出錯。有沒有更好的辦法呢?這講我們就講解一種我們熟悉的方法來解決,利用的是字典以及我們經常利用的查找和替換。利用這種方法,首先會大大降低代碼的難度,同時也會提高代碼的運行速度。

1 利用字典及查找替換方法實現輸出信息的思路分析

利用基本的VBA知識點來解決問題是我們追求的目標,遇到的實際問題千千萬,解決的方法有萬萬千,最容易利用的往往是基本的方法。比如字典,可以用於我們在EXCEL中提取信息的存儲,同時能直接獲得信息的條數,如果有必要還可以實現排重,是非常不錯的方法。我們不妨利用字典來提取我們的信息。

查找和替換,是指在word中進行,我們可以依次查找我們需要替換的值,然後用字典中已經存儲的信息來替換它。

為了更好的實現信息的組合和拆分,我們在字典中裝入數據的時候,不妨將各個數據以固定的符號進行分隔,然後在利用這些數據的時候,直接利用Split函數進行分解。對於本講的問題,我們不妨把條目數作為字典的鍵,信息組合作為鍵值對應。在替換word模板中特定值的時候,可以直接提取Split拆分後的數組元素即可,非常的簡單實用。

2 利用字典及查找替換方法實現輸出信息的代碼實現

思路有了,下面我們看一下代碼部分:

Sub mynzD() '利用字典以及查找替換,將excel數據與WORD模板文件合併

Dim objWord As Object, objWordNew As Object

Dim avntField As Variant

'模板文件地址給出

strCopyMyPath = ThisWorkbook.Path& "\015M模板.docx"

strNewPath = strCopyMyPath

'引用字典

Set dic = CreateObject("Scripting.Dictionary")

'給出路徑

strMyPath = ThisWorkbook.Path

'建立引用

Set objWord = CreateObject("Word.Application")

'給字典賦值

Sheets("sheet3").Select

i = 2

Do While Cells(i, 1) <> ""

'寫入鍵和鍵值,要注意寫入的方法

dic(i - 1) = Cells(i, "a") & "+" & Cells(i, "b") & "+" & Cells(i, "c") & "+" & Cells(i, "d") & "+" & Cells(i, "e")

i = i + 1

Loop

SUMI = i - 2

avntField = Array("商品編號", "收貨人", "地址", "數量", "檢驗")

'在數據間建立循環

With objWord

.Visible = True

For j = 1 To SUMI

Set objWordNew= .Documents.Open(strNewPath)

Set myRange= .ActiveDocument.Content

'字典鍵值分解

UU = Split(dic(j), "+")

For i = 0 To UBound(avntField)

myRange.Find.ExecuteFindText:=avntField(i) & "值", ReplaceWith:=UU(i), Replace:=wdReplaceAll

Next

'文件保存

.ActiveDocument.SaveAsstrMyPath& "\" & UU(0) & ".doc"

.ActiveDocument.Close True

Set objWordNew = Nothing

Next

End With

objWord.Quit

Set objWord = Nothing

Set dic = Nothing

MsgBox "文件處理完畢"

End Sub

代碼福分截圖:

代碼講解:

1)'引用字典

Set dic = CreateObject("Scripting.Dictionary")

建立代碼的引用,這時後期的綁定。

2)'給字典賦值

Sheets("sheet3").Select

i = 2

Do While Cells(i, 1) <> ""

'寫入鍵和鍵值,要注意寫入的方法

dic(i - 1) = Cells(i, "a") & "+" & Cells(i, "b") & "+" & Cells(i, "c") & "+" & Cells(i, "d") & "+" & Cells(i, "e")

i = i + 1

Loop

以上代碼將工作表中的信息放到字典中,對於字典來講,鍵放的是信息的條目數,鍵值放的是信息,信息的不同欄位用「+」分隔

3)For j = 1 To SUMI

Set objWordNew= .Documents.Open(strNewPath)

Set myRange= .ActiveDocument.Content

'字典鍵值分解

UU = Split(dic(j), "+")

For i = 0 To UBound(avntField)

myRange.Find.ExecuteFindText:=avntField(i) & "值", ReplaceWith:=UU(i), Replace:=wdReplaceAll

Next

'文件保存

.ActiveDocument.SaveAsstrMyPath& "\" & UU(0) & ".doc"

.ActiveDocument.Close True

Set objWordNew = Nothing

Next

以上代碼利用了UU = Split(dic(j), "+")將字典的鍵值進行分解,取得一個一維數組。在WORD文檔中利用Find.Execute的方法實現查找和替換,查找的內容是FindText:=avntField(i) & "值";替換的內容是ReplaceWith:=UU(i),這樣就完美地解決了數據信息輸入到word中的問題。

3 利用字典及查找替換方法實現輸出信息實現效果

我們點擊下面截圖的運行按鈕,將會得到數據信息的模板化輸出,如下面截圖的信息和輸出的文件。

實現的效果也是非常完美的。

本節知識點回向:

本例中利用字典的鍵代表信息的條目有什麼好處?② 如何讓每條信息的內容與WORD文檔結合的?

本講代碼參考文件:015工作表.xlsm

積木編程的思路內涵:

在我的系列書籍中一直在強調「搭積木」的編程思路,這也是學習利用VBA的主要方法,特別是職場人員,更是要採用這種方案。其主要的內涵:

1代碼不要自己全部的錄入。你要做的是把積木放在合適的位置然後去修正代碼,一定要拷貝,從你的積木庫中去拷貝,然後修正代碼,把時間利用到高效的思考上。

2 建立自己的「積木庫」。平時在學習過程中,把自己認為有用的代碼放在一起,多積累,在用到的時候,可以隨時拿來。你的積木庫資料越多,你做程序的思路就會越廣。

VBA的應用界定及學習教程:

VBA是利用Office實現個人小型辦公自動化的有效手段(工具)。這是我對VBA的應用界定。在取代OFFICE新的辦公軟體沒有到來之前,誰能在數據處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!

我記得20年前自己初學VBA時,那時的資料甚少,只能看源碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重複我之前的經歷,我根據自己多年VBA實際利用經驗,推出了六部VBA專門教程,目前教程均通過32位和64位兩種OFFICE系統測試。

第一套:VBA代碼解決方案是VBA中各個知識點的講解,教程共147講,覆蓋絕大多數的VBA知識點,提供的程序文件更是一座不可多得的代碼寶庫,是初學及中級人員必備教程;目前這套教程提供的版本是修訂第二版,程序文件通過32位和64位兩種OFFICE系統測試。

第二套:VBA資料庫解決方案資料庫是數據處理的專業利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作,適合中級人員的學習。目前這套教程提供的是修訂第一版教程,程序文件通過32位和64位兩種OFFICE系統測試。

第三套:VBA數組與字典解決方案數組和字典是VBA的精華,字典是VBA代碼水平提高的有效手段,值得深入的學習,是初級及中級人員代碼精進的手段。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統測試。

第四套:VBA代碼解決方案之視頻是專門面向初學者的視頻講解,可以快速入門,更快的掌握這門技能。這套教程是第一套教程(修訂一版)的視頻講解,聽元音更易接受。這套教程還會額外提供通過32位和64位兩種OFFICE系統測試的程序文件。

第五套:VBA中類的解讀和利用這是一部高級教程,講解類的虛無與肉身的度化,類的利用雖然較少,但仔細的學習可以促進自己VBA理論的提高。這套教程的領會主要是讀者的領悟了,領悟一種佛學的哲理。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統測試。

第六套教程:《VBA信息獲取與處理》,這是一部高級教程,涉及範圍更廣,實用性更強,面向中高級人員。教程共二十個專題,包括:跨應用程式信息獲得、隨機信息的利用、電子郵件的發送、VBA網際網路數據抓取、VBA延時操作,剪切板應用、Split函數擴展、工作表信息與其他應用交互,FSO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定製工作表信息函數等等內容。程序文件通過32位和64位兩種OFFICE系統測試。

上述教程的學習順序:1→3→2→6→5或者4→3→2→6→5。提供的程序文件更是一座巨大的代碼庫,供讀者使用,如需要可以WeChat: NZ9668

學習VBA是個過程,也需要經歷一種枯燥的感覺

「眾鳥高飛盡,孤雲獨去閒。相看兩不厭,只有敬亭山」。學習的過程也是修心的過程,修一個平靜的心。在代碼的世界中,心平靜了,心情好了,身體自然而然就好。心靜則正,內心裡沒有那麼多邪知邪見,也就沒有那麼多妄想。利人就是利己。我的教程助力給正在努力的朋友。

「水善利萬物而不爭」,綿綿密密,微則無聲,巨則洶湧。學習亦如此,知道什麼是自己所需要的,不要蜷縮在一小塊自認為天堂的世界裡,待到暮年時再去做自欺欺人的言論。要努力提高自己,用一顆充滿生機的心靈,把握現在,這才是進取。越是有意義的事情,困難會越多。願力決定始終,智慧決定成敗。不管遇到什麼,都是風景。看淡紛爭,看輕得失。學習時微而無聲,利用時則巨則洶湧。「路漫漫其修遠兮,吾將上下而求索」

每一分收穫都是成長的記錄,怎無憑,正是這種執著,成就了朝霞的燦爛。最後將一闕詞送給致力於VBA學習的朋友,讓大家感受一下學習過程的枯燥與執著:

浮雲掠過,暗語無聲,

唯有清風,驚了夢中啼鶯。

望星,疏移北鬥,

奈將往事雁同行。

阡陌人,昏燈明暗,

忍顧長亭。

多少VBA人,

暗夜中,悄聲尋夢,盼卻天明。

怎無憑!

分享我多年工作實際經驗的成果,隨喜這些有用的東西,給確實需要利用VBA的同路人。回向學習利用VBA的歷歷往事,不勝感慨,謹以這些文字以紀念,

分享成果,隨喜正能量

相關焦點

  • word查找替換應用:高效的英文排版技巧
    編按:說起Word查找和替換功能,想必各位都有所了解,但許多人會以為它只是一個用來替換文字內容的功能。其實它的功能非常強大。工作中,可以利用查找和替換功能來幫助我們批量完成中英文排版,一起來看看吧!今天,小編教大家3個實用小技巧,在Word中利用查找和替換功能快速對中英文進行排版。01、中英文合併成一行直接按「Ctrl+H」快捷鍵,打開「查找和替換」對話框。點擊「高級」按鈕,勾選「使用通配符」複選框,然後輸入下面的代碼(注意:代碼需在英文狀態下輸入)。
  • EXCEL中利用REPLACE函數與FIND函數的組合統一替換特定字符後文本
    EXCEL函數公式大全之利用REPLACE函數FIND函數統一替換特定字符後面字符。EXCEL函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數REPLACE函數FIND函數。
  • word中查找與替換的使用
    word中查找與替換功能非常實用,節省大家的時間和精力。1.按內容方式查找 。「開始」選項卡——「編輯」命令組——「查找」命令——出現左側導航欄——輸入搜索內容——回車確定搜索 下面會顯示結果列表,單擊實現快速定位。
  • excel表格中巧用通配符查找替換格式,讓你的工作更輕鬆
    excel表格中,複製過來的表格數據帶有格式,想要一步替換不同內容相同格式的文字如何操作呢,試試查找替換中通配符與格式的使用方法,快速幫你完成工作。職位中的數據格式不統一,現在格式:字體是"隸書",顏色是'紅色'的替換為:字體'宋體',顏色是' 紅色'查找的內容用通配符*號,表示查找不同的文字內容設定查找的格式字體格式是'隸書',顏色'紅色'
  • Word查找替換總是反引號,怎麼辦?
    【IT168 實用技巧】在使用Word辦公時,我們經常需要批量查找替換,但是Word有一個怪毛病,就是為文中的某個字符串加上引號(中文引號「」)文字替換時,前引號都會變成後引號(不信大家試試)!這是什麼原因呢?怎麼解決呢?
  • 「Excel技巧」Excel快速實現將一行轉為多行多列的四種方法
    以下四種方法,讓你快速完成將一列轉多行。●查找替換法●批量填充法●藉助word表格轉換法●用indirect函數轉換法現在分別來說一說這四種方法具體怎麼使用。2、將「A」替換成「=A」表底做好後,我們利用查找替換法將表格裡的「A」替換成「=A」。3、將公式轉化為數值替換後,我們可以看到C2:H11單元格變成是用公式填充。
  • word模板如何用?個人求職簡歷模板下載方法
    奇點來臨小編了解到的情況,很多的朋友在進行文檔編輯的時候,很多時候為了提高工作效率,往往需要模板的使用。不管是word,excel或者是PowerPoint。今天,小編就和大家聊聊word模板的使用,以及如何下載word簡歷模板等。
  • Excel查找替換60以下數字為「不合格」,怎麼辦呢?這個方法很厲害
    查找替換是Excel最常用的操作之一,相信你並不陌生。但通常查找替換的都是固定內容,那要替換變化的內容怎麼辦呢?我就經歷過這樣一件事:外出參加培訓,經過緊張的七天學習,終於考試通過。在領取結業證書時,發現細心的老師把所有學員的成績在excel工作表中記得非常詳細,還保留了2位小數。令人意想不到的是,這位年過半百的老師又讓每位學員把自己的成績改成"合格"和"不合格"。籤於對老師的尊重,我們所有學員很快排成一列,依次找到自己的成績,然後修改。20人,花了近差不多30分鐘,算完成了。
  • word在數字前批量添加金錢符號
    在工作中,有時在word文檔中需要輸入很多數字金額,在數字前面需要帶個金錢符號「¥」。比較笨的方法是在輸入金額數字時先輸入符號「¥」,逐個輸入,這樣就比較耗時了。2. word不像在excel中可以給整列更換數字格式就可以直接顯示金錢符號了。如果word中只是表格中的數字需要顯示金錢符號,倒可以在excel中編輯好表格再複製粘貼到word也能達到效果。
  • 怎樣在word中批量替換文字?Word替換文字這一招你會嗎?
    平時我們在編輯word文檔的時候,經常會遇到將文檔中的某一個文字或者是數字替換成別的內容,很多人想到的方法就是一個字一個字的找,之後進行更改,這樣會很耽誤我們的時間,如果你的文檔內容過多的話難道你也會使用這種方法進行操作嗎?除了上述方法有沒有更簡單的方法呢?
  • 教師教學必備excel萬能技巧之怎麼引用excel內容到word?
    對於老師們來說,現在日常辦公用到的最多的工具要數excel和word了,很多時候老師們在使用excel的過程中,可能會需要把excel裡做好的表格放到word裡,但是卻不知道如何操作,今天我們就來聊聊如何把excel裡的內容快速引用到word裡!
  • Word查找替換功能將不可能變為可能的一個例子
    01手動輸入的角標格式批量替換方法手動輸入的角標格式批量替換比較簡單,直接查找替換就行了。以批量替換角標中的方括號為例:在查找框輸入【(\[)([0-9]@)(\])】,在替換框,輸入【〔\2〕】,查找的格式,在右下角【查找】欄的字體裡設置為上標。否則會把正文中的方括號也替換掉了。注意勾選【使用通配符】。解釋下代碼:因為在Word中,【[]】是保留字符,所以要替換【[]】時必須用【\】來進行轉義。
  • 如何把excel表格導入word? Excel的表格導入word圖文教程
    如何把excel表格導入word? Excel的表格導入word圖文教程時間:2017-07-11 13:30   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:如何把excel表格導入word? Excel的表格導入word圖文教程 如何把excel表格導入word?
  • 5個Word查找和替換的妙用,你用過幾個?
    查找和替換功能在實際工作中會時常運用,使用得好可以大幅度提高工作效率,本期Word妹與大家分享5個查找和替換的妙用。 1、給特定字詞語加格式 這種用法比較基礎,只要在查找中輸入詞語,然後將光標放在替換為的文本框中,選擇格式——字體,在相應的界面中設置顏色和字號。
  • 怎樣在Word文檔中替換文字
    下面舉例說明在Word文檔中怎樣替換文字,把「集成灶」換成「集成環保灶」為例。第一步:打開word文檔第二步:選擇「開始」菜單下的「查找替換」功能,會彈出一個「查找和替換」窗口第三步:在彈出的窗口中,選擇「替換」功能,在「查找內容」中輸入集成灶,在「替換為」中輸入集成環保灶,然後點擊「全部替換」,會彈出一個小窗口第四步:在彈出的小窗口中選擇確定,然後關閉「查找和替換」窗口第五步:替換成功後的文檔如下圖所示
  • 如何使用word的基本功能,看這裡,word的一些常用小技巧
    電腦的普及,文件的使用,讓人們越多越多的接觸一些辦公軟體,比如word,word強大的文檔處理能力,讓word的使用頻率大大增加,現在我將介紹幾種word中常用的幾種使用技巧。1. 快速查找某些關鍵字所在位置。
  • word替換技巧:這幾個特殊符號的替換方法,你會用不?
    你卻還使用手動檔,一個個的修改,卻不知道利用「查找和替換」功能來幫助我們批量完成工作。沒錯,大多數人只知道用Word裡的「查找和替換」功能替換文字,卻不知道特殊符號也能替換。那麼,今天小編就來為大家介紹 2 個查找替換特殊符號的小技巧。
  • 有時候word文檔處理數據比Excel表格更加便捷
    我們在實際工作中,我們經常使用word文檔編輯文檔,word文檔功能還是比較強大的,我們分享一下有關Word文檔處理數據的速度比Excel表格處理數據的速度要快很多。1:多行表格合併成一行當我們用Excel表格來處理,對於不懂函數的人說會比較麻煩些,首先需要先添加輔助列,之後再利用PHONETIC函數來連接。
  • 「Word技巧」常用的五個word技巧整理,大家都說好用,你覺得呢?
    那時因為很多word技巧你不懂用。Word隱藏著海量的功能,你若能把它們應用到極致,就是絕活了。今天匯總了五個Word文檔處理技巧,主要是關於圖片和表格處理小技巧,都很實用,能幫助你提高工作效率。操作方法:1、打開Word文檔,用快捷鍵Ctrl+H打開【替換】對話框;2、將光標放在查找輸入框裡,點擊【更多】—【特殊格式】—【圖形】;3、再將光標放在替換輸入框裡,點擊【格式】—【段落】,打開【替換段落】對話框;
  • Word一次性選擇英文或數字,正選與反選所有中文,用查找與替換
    無論要求選擇哪一種,不可能用滑鼠一個個去選擇,如果那樣工作量將不可想像,應該怎麼來選擇呢?能達到這種要求的也只能用查找和替換,當然用宏也可以,但普通用戶都不懂編寫宏程序,下面將分享用查找和替換一次性選擇英文或數字,一次正選和反選所有中文的方以及一次性選中全部英文和數字的方法。