大江東去



在重復處理格式設置或更正問題時,VBA有效且高效。例如,你是否曾經在Word中更改每頁頂部的段落樣式?你是否曾經必須重新設置從Excel粘貼到Word文檔或Outlook電子郵件中的多個表的格式?你是否曾經必須在多個Outlook 聯系人中進行統一更改?如果必須更改10次或20次以上,則可能值得使用 VBA 來自動執行更改操作;如果必須更改數百次,則肯定值得考慮。幾乎所有你可以手動執行的格式設置或編輯更改都可以使用VBA執行。
由于文章篇幅的限制和排版需要,相關的VBA代碼請關注電腦迷微信(微信號:cpcfan)回復1502VBA1獲取下載鏈接。
用VBA實現Word“功能”操作
對于用戶來說,Word操作是日常應用頻率非常高的辦公軟件,也許你會遇到一些比較困難或另類的操作,其實這些看似麻煩的操作都可以通過VBA代碼中實現,這里通過實例的形式介紹幾個比較實用的方法。
批量設置標題樣式
由于工作的需要,領導要求將文檔中所有包含“創新意識”的行設置為“標題1”的樣式,如果純手工設置的話,既麻煩而且也容易遺漏,我們可以考慮借助VBA代碼解決這一問題(如圖1)。
如果需要將包含其他內容的行設置為“標題1”,只要更改“"*創新意識*"”的內容即可。檢查無誤之后,當前文檔所有包括“創新意識”的行均會被設置為“標題1”樣式,如果需要使用其他的標題樣式,只要更改“標題 1”即可。
批量刪除頁眉和頁腳
由于工作的需要,領導要求刪除相關文檔的頁眉、頁腳的內容,這些內容都是單位更名之前的信息。如果逐一打開文檔,切換到頁眉、頁腳區域進行手工刪除,操作是相當的繁瑣,而且容易出現遺漏。我們可以利用VBA代碼批量刪除這些頁眉和頁腳(如圖2)。
上述代碼中,代碼名“del”可以任意命名,“Set myRange = oSec.Headers(wdHeaderFooterPrimary).Range”和“myRange.Delete”表示刪除頁眉,“Set myRange = oSec.Footers(wdHeaderFooterPrimary).Range”和“myRange.Delete”表示刪除頁腳,也可以根據實際需要只刪除頁眉或頁腳。檢查無誤之后,依次選擇“文件/關閉并返回到Microsoft Word”命令,返回Word界面,按下“Alt+F8”組合鍵,打開“宏”對話框,選擇并運行宏(如圖3),跳轉到目標文檔所在的路徑,很快就可以自動刪除相關文檔的頁眉和頁腳內容。
如果需要清理的目標文檔是“*.docx”格式,可以對“.Filters.Add "所有 Word 文檔", "*.doc",1”行進行修改,例如修改為“.Filters.Add "所有 Word 文檔", "*.docx",1”。
快速計數二級標題
同事前來求助,要求計算出所有二級標題(即樣式為“標題2”)的數量,常規的方法是插入目錄,然后手工計數,這顯然過于繁瑣了一些,而且也容易出錯。其實,我們可以利用VBA代碼解決這一困難,按下“Alt+F11”組合鍵,打開Microsoft Visual Basic for Application編輯器窗口,依次選擇“插入/模塊”命令,在右側窗格插入一個空白模塊(如圖4),復制并粘貼下載的代碼。
上述代碼中的宏名稱“二級標題計數”可以任意命名,“wdStyleHeading2”表示統計樣式為“標題2”的數量,如果需要統計其他樣式標題的數量,可以對其進行修改,例如“wdStyleHeading2”可以統計樣式為“標題1”的數量,至于“MsgBox”的提示文字可以任意修改。檢查無誤之后,選擇“文件/關閉并返回到Microsoft Word”命令,返回Word主界面,按下“Alt+F8”組合鍵,打開“宏”對話框,運行宏,這里的數字就是當前文檔二級標題的數量(如圖5)。
Tips
編輯VBA代碼的常規步驟并不復雜,按下“Alt+F11”組合鍵,此時會打開Microsoft Visual Basic for Applications編輯器窗口,依次選擇“插入/模塊”,在右側窗格插入一個空白模塊,手工輸入或粘貼代碼,檢查無誤之后,依次選擇“文件/關閉并返回到Microsoft Word”命令,返回Word主界面,按下“Alt+F8”組合鍵,打開“宏”對話框,選擇并運行宏就可以了。
利用VBA代碼提高Excel操作效率
快速統計特定顏色的數量
最近在工作中遇到一個問題,工作表的部分數據被標注為紅色,現在需要將這些標注為紅色的數據篩選出來,同時還需要統計紅色數據中每個數據的個數。手工統計自然不在考慮之列,決定利用自定義函數解決這一問題。
檢查無誤之后,選擇“文件/關閉并返回到Microsoft Excel”命令,返回Excel主界面,在H1單元格輸入公式“=countcolor(B1,A1:E5)”,這里的“B1”表示需要引用的單元格顏色(紅色),“A1:E5”表示需要統計顏色的單元格區域,執行之后即可得到結果(如圖6),如果需要統計其他的顏色,只要更改“B1”即可。
向工作表頁眉插入系統年份
在工作中遇到一個問題,上級要求將系統日期以“YYYY年”的格式放入Excel工作表的頁眉,例如“四川省資陽市2014年XXXX統計表”,其中的“2014”必須由計算機根據系統日期自動生成,不過如果在頁眉使用“&[日期]”的話,那么會同時顯示“年/月/日”的信息,這就與上級的要求不相符合。用VBA代碼也可以簡單實現。
代碼中的“四川省資陽市yyyy年××××統計表”的字符內容和格式可以根據實際需要進行修改,選擇并運行test宏,很快就可以在頁腳位置插入相應內容,而且每次打開文檔,都會自動更新年份(如圖7)。
Tips
Excel的VBA操作與Word基本相同,按下“Alt+F11”組合鍵,打開Microsoft Visual Basic for Applications編輯器窗口,依次選擇“插入→模塊”,在右側窗格插入一個空白模塊,在這里手工輸入或粘貼代碼,檢查無誤之后,選擇“文件→關閉并返回到Microsoft Excel”命令,返回Excel主界面,按下“Alt+F8”組合鍵,打開“宏”對話框,運行宏就可以了。