一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

用VBA宏提高Word操作效率-PCMAG中文站-和訊網(wǎng)

 楓葉晚秋 2010-11-25

用VBA宏提高Word操作效率

2010年03月18日11:39      來源:      手機免費訪問:hexun.com      好文我頂(0)

   在日常工作和生活中,Word是我們習(xí)慣使用的辦公軟件,很多時候為了某些“變態(tài)”的要求,往往需要通過大量繁復(fù)的步驟進行操作,效率相當之低。
   其實,利用VBA宏代碼,可以大大提高工作效率,本文以Word 2003/2007這兩個應(yīng)用最為廣泛的版本為例,介紹一些比較典型的應(yīng)用實例。

實例1:統(tǒng)計修訂的字數(shù)
在實際工作中,我們經(jīng)常會對文檔進行修改,為了不同用戶查閱的方便,一般都會使用修訂模式,此時會在文檔中清楚的顯示出來,但增加的字數(shù)和刪除的字數(shù)卻并未被統(tǒng)計出來。難道只能手工統(tǒng)計?
利用VBA宏代碼,可以非常方便的統(tǒng)計出修訂過程中增加的字數(shù)和刪除的字數(shù),具體代碼如下:
Sub test()
Dim Rev As Revision, c1 As Long, n1 As Integer, a As String
Dim Wd As Range, c2 As Long, n2 As Integer, b As String
For Each Rev In ActiveDocument.Revisions
If Rev.Type = wdRevisionInsert Then
For Each Wd In Rev.Range.Words
c1 = c1 + IIf(Wd Like "[一-龥]*", Wd.Characters.Count, 1)
Next
n1 = n1 + 1
a = a & Rev.Range.text & vbTab
ElseIf Rev.Type = wdRevisionDelete Then
For Each Wd In Rev.Range.Words
c2 = c2 + IIf(Wd Like "[一-龥]*", Wd.Characters.Count, 1)
Next
n2 = n2 + 1
b = b & Rev.Range.text & vbTab
End If
Next
MsgBox "增加內(nèi)容" & n1 & "處共" & c1 & "字;刪除內(nèi)容" &
n2 & "處共" & c2 & "字。"
End Sub



   上述代碼主要是基于Word 2007對于Words集合對象的判斷進行統(tǒng)計,宏名稱“test”可以任意取;“[一-龥]”表示所有中文漢字。
   代碼檢查無誤之后,單擊工具欄上的“保存”按鈕執(zhí)行保存操作,返回Word窗口之后,按下A l t+F8組合鍵,打開“宏”對話框,選擇列表框中的“test”,單擊右側(cè)的“運行”按鈕,很快會看到準確的結(jié)果,包括增加和刪除共幾種、多少字,這樣就清晰多了。

實例2:快速提取腳注內(nèi)容
   同事傳過來一個文件,要求將腳注的內(nèi)容提取出來,文檔如下圖所示,其中作了幾處腳注,現(xiàn)在要求將腳注的內(nèi)容提取到正文中相應(yīng)腳注編號的位置,在這里添加標記(JZ:*),此處的“*”指腳注的內(nèi)容(不含序號,如此文①和②),同時刪除原來的編號。



   如果通過手工的方法進行操作,既麻煩也不方便,其實這里可以利用VBA代碼解決這一問題,代碼如下:
Sub test()
Dim oFootNote As Footnote, myRange As Range
Dim BeforeName As String, BeforeSize As Single
On Error Resume Next
Application.ScreenUpdating = False
For Each oFootNote In ActiveDocument.Footnotes
With oFootNote
Set myRange = ActiveDocument.Range(.Reference.Start, .Reference.End)
.Range.Copy
With myRange
.Text = "(JZ: )"
BeforeName = .Font.Name
BeforeSize = .Font.Size
myRange.SetRange .Start + 4, .Start + 4
.Paste
.Font.Name = BeforeName
.Font.Size = BeforeSize
End With
End With
Next
Application.ScreenUpdating = True
End Sub
   如果需要重新設(shè)置標記,可以對“.Text="(J Z:)" ”這一行進行更改;“BeforeName = .Font.Name”這一行是取得之前的字號大小,“.Font.Name =BeforeName”和“.Font.Size = BeforeSize”分別用來重新設(shè)置字體和字號。檢查無誤后,單擊工具欄上的“保存”按鈕,依次執(zhí)行“文件→關(guān)閉并返回到Microsoft Word”命令,返回Word窗口,然后“運行”該宏命令,你就可以看到最終結(jié)果了。

實例3:從任意頁面編排頁碼
   很多時候,我們在使用Word編排文檔時,經(jīng)常需要從文檔的某個頁面開始顯示頁碼,而不是從文檔的第1頁顯示頁碼。對于比較熟悉Word的朋友來說,這只是個簡單的問題:先分節(jié),然后斷開節(jié)鏈接,最后在節(jié)中插入重新編號的頁碼即可。但是對于不經(jīng)常使用Word的朋友來說,要快速、順利完成這幾個操作并非易事。
   其實,我們也可以借助VBA宏解決這一問題,而且操作更為簡單。打開目標文檔,按下Alt+F11組合鍵,打開Microsoft Visual Basic編輯器窗口,雙擊左側(cè)目標文檔文
件名下的ThisDocument,粘貼如下代碼:
Sub test()
Dim p As Integer
On Error Resume Next
p = InputBox("請輸入起始編排頁碼的頁次")
With Selection
.GoTo What:=wdGoToPage, Count:=p
.InsertBreak Type:=wdSectionBreakContinuous
.Sections(1).Footers(1).LinkToPrevious = False
With .Sections(1).Footers(1).PageNumbers
.RestartNumberingAtSection = True
.StartingNumber = 1
.Add PageNumberAlignment:=wdAlignPageNumberCenter, FirstPage:=True
End With
End With
End Sub



   檢查無誤之后,按下Ctrl+S組合鍵執(zhí)行保存操作,依次執(zhí)行“文件→關(guān)閉并返回到Microsoft Word”命令,然后按F5鍵運行VBA宏,按照提示輸入起始編碼頁碼的數(shù)字,例如“3”,確認之后關(guān)閉對話框。

實例4:將多頁文檔分解成單頁文檔
由于工作的需要,現(xiàn)在要求將多頁的Word文檔按照每個頁面單獨存儲為1個Word文檔,除了枯燥的剪切、粘貼之外,也可以利用V B A宏解決這一困難。首先請打開相應(yīng)的多頁Word文檔,打開Microsoft Visual Basic編輯器窗口,在右側(cè)窗格中插入一個新的空白模塊,手工粘貼如下代碼:



Sub test()
myPath = "H:\temp\"
Selection.HomeKey Unit:=wdStory
Set myRange = Selection.Range
curpage = 0
Application.ScreenUpdating = False
Do
prepage = curpage
pagenum = pagenum + 1
Set myRange = myRange.GoToNext(What:=wdGoToPage)
curpage = myRange.Start
endpage = myRange.Previous.Start
If curpage = prepage Then _
endpage = ActiveDocument.Content.End
ActiveDocument.Range(prepage, endpage).Copy
With Documents.Add
.Content.Paste
.SaveAs myPath & "Page" & pagenum & ".doc"
.Close
End With
If curpage = prepage Then Exit Do
Loop
Application.ScreenUpdating = True
End Sub
   上述代碼中的“H:\temp\”表示存儲單頁文檔的位置,請根據(jù)實際情況而定,檢查無誤之后保存代碼并返回Word界面。按下Alt+F8組合鍵,選中列表框中的“test”宏,單擊右側(cè)的“運行”按鈕,稍等片刻即可將當前的多頁Word文檔按照頁面快速分割存儲為一個一個的Word文檔,是不是很方便?需要指出的是,如果沒有選擇內(nèi)容,那么VBA宏會針對當前文檔的所有頁面進行自動分割,如果選定頁面,那么就只會針對當前選定的頁面進行分割。


 

 

【作者:王志軍 來源:電腦時空】 (責任編輯:汪艷)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧洲亚洲精品自拍偷拍| 丝袜破了有美女肉体免费观看 | 国产成人免费高潮激情电| 日韩一区中文免费视频| 精品熟女少妇一区二区三区| 一区中文字幕人妻少妇| 亚洲综合伊人五月天中文| 久久精品色妇熟妇丰满人妻91| 夫妻性生活黄色录像视频| 亚洲一区二区三区有码| 视频一区日韩经典中文字幕| 国产又粗又猛又长又大| 久久99热成人网不卡| 91福利免费一区二区三区| 成人精品一级特黄大片| 久久大香蕉精品在线观看| 千仞雪下面好爽好紧好湿全文| 殴美女美女大码性淫生活在线播放| 人妻久久一区二区三区精品99| 中文字幕一区二区三区中文| 欧美日韩一区二区午夜| 懂色一区二区三区四区| 国产人妻精品区一区二区三区| 欧美日韩一区二区综合| 亚洲熟妇av一区二区三区色堂| 护士又紧又深又湿又爽的视频| 在线免费不卡亚洲国产| 日韩不卡一区二区视频| 人妻乱近亲奸中文字幕| 国产丝袜美女诱惑一区二区| 欧美精品亚洲精品日韩精品| 日本本亚洲三级在线播放| 亚洲一区二区三区精选| 91一区国产中文字幕| 国产在线日韩精品欧美| 中文字幕久久精品亚洲乱码| 亚洲欧美日韩国产成人| 久久国产精品熟女一区二区三区| 九九热在线免费在线观看| 老熟妇乱视频一区二区| 国产伦精品一一区二区三区高清版|