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

分享

【20171124】- 使用宏處理Word段落(批量刪除段落空格)

 L羅樂(lè) 2017-11-24

        最近SUT學(xué)習(xí)交流群有位司法小伙伴,需要對(duì)其工作的庭審記錄進(jìn)行批量處理,也就是從無(wú)格式狀態(tài)處理變?yōu)橐欢ǜ袷降臓顟B(tài)。因?yàn)槊總€(gè)人的處理標(biāo)準(zhǔn)不太一樣,所以最終成型的格式也不盡相同,但對(duì)Word段落的調(diào)整等都是相同的。

        其實(shí)我一直擔(dān)任校友會(huì)的網(wǎng)絡(luò)管理員,每次都會(huì)有校友編寫好的報(bào)到發(fā)給我,再由我發(fā)布到校友網(wǎng)站和公眾號(hào)上。其實(shí)接收到的報(bào)到各種類型的格式都有,雖然整理看下來(lái)還行,但細(xì)節(jié)方面很多需要再次處理,首行縮進(jìn)是敲空格得到的,插圖有的是左對(duì)齊,有的是居中對(duì)齊等等。

        其實(shí)為了解決首行縮進(jìn)都是空格的問(wèn)題,其實(shí)也非常容易,可以使用查找和替換,但替換的可能不只是段落前的空格。為了能夠精確去除段落前的空格,可以通過(guò)宏代碼來(lái)處理。

        司法小伙伴咨詢的問(wèn)題如下,他在嘗試解決使用宏代碼刪除段落前的空格,問(wèn)題截圖如下:



        上圖中,小伙伴的代碼運(yùn)行結(jié)果如下圖所示:



        當(dāng)運(yùn)行宏代碼的時(shí)候,提示如上所示的錯(cuò)誤提示,點(diǎn)擊確定后會(huì)定位到Dim p As Paragraph, c As Character所在行。其實(shí)出現(xiàn)這個(gè)錯(cuò)誤,可以使用兩個(gè)步驟加以解決,第一:先確定Paragraph和Character是否是VB支持的類型;第二:如果是VB支持的類型,可以查看是否需要從【工具】→【引用】選擇必要的組件。

        經(jīng)過(guò)排查,發(fā)現(xiàn)Character不是VB支持的類型,所以上面的代碼需要稍加修改。修改后的代碼如下:


Sub SUT刪除段前空格()

    Dim p As Integer

    For p = 1 To ActiveDocument.Paragraphs.Count

        Do While Left(ActiveDocument.Paragraphs(p).Range.Text, 1) = ' '

            ActiveDocument.Paragraphs(p).Range.Find.Execute findtext:=' ', replacewith:='', Replace:=wdReplaceOne

        Loop

    Next p

End Sub


        其實(shí)上面的代碼也非常容易理解,就是對(duì)每一個(gè)Word段落進(jìn)行循環(huán)處理,使用Do While循環(huán)判斷段落左側(cè)是否包含空格,有空格就替換為空。為了更加形象的展示代碼執(zhí)行,可以觀看如下的動(dòng)態(tài)圖展示:



        如果一個(gè)段落前后都有很多多余的空格,經(jīng)常使用Excel的小伙伴一定能想到Trim函數(shù),其實(shí)在Word中也是適用的哦。



        直接使用循環(huán)結(jié)合Trim函數(shù)即可刪除段落前后的空格,司法小伙伴給出的代碼如下:



Sub SUT刪空格()

    For a = 1 To ActiveDocument.Paragraphs.Count

        ActiveDocument.Paragraphs(a).Range.Text = Trim(ActiveDocument.Paragraphs(a).Range.Text)

    Next a

End Sub


        本以為上面的代碼能否正常工作,也就是能刪掉段落前后的空格,其實(shí)該代碼并沒(méi)有起到作用,通過(guò)調(diào)試發(fā)現(xiàn),Word中有一個(gè)特殊的段落結(jié)尾,哪怕是空行,只要有一個(gè)回車,其實(shí)改段落的長(zhǎng)度Len也是1,并非等于0,故修改為如下的代碼:


Sub SUT刪除段落前后空格()

    For a = 1 To ActiveDocument.Paragraphs.Count

        Set sutRng = ActiveDocument.Paragraphs(a).Range

        'MsgBox Len(strTmp)

        sutRng.MoveEnd wdCharacter, -1

        sutRng.Text = Trim(sutRng.Text)

        sutRng.MoveEnd wdCharacter, 1

        ActiveDocument.Paragraphs(a).Range.Text = sutRng.Text

    Next a

End Sub


        代碼演示如下動(dòng)態(tài)圖所示:



        其實(shí)更多的時(shí)候我們需要?jiǎng)h除一個(gè)段落中的所有空格,其實(shí)可以通過(guò)最前面說(shuō)過(guò)的查找和替換功能,可以替換全部空格為空即可。可以通過(guò)如下代碼完成對(duì)段落空格的替換:


Sub SUT刪除段落空格()

    For p = 1 To ActiveDocument.Paragraphs.Count

        ActiveDocument.Paragraphs(p).Range.Find.Execute findtext:=' ', replacewith:='', _

            Replace:=wdReplaceAll

    Next p

End Sub


        一般軟件都提供有替換和全部替換功能,Word也不例外,正如上面對(duì)面中的wdReplaceOne(替換)wdReplaceAll(全部替換)



        其實(shí)上面代碼的循環(huán)已經(jīng)沒(méi)有了意義,直接按照章節(jié)來(lái)替換會(huì)更加方便快捷,具體代碼如下:


Sub SUT刪除文檔空格()

    ActiveDocument.Sections(1).Range.Find.Execute findtext:=' ', replacewith:='', _

        Replace:=wdReplaceAll

End Sub


        具體代碼演示如下動(dòng)態(tài)圖所示:



        經(jīng)過(guò)幾次Word宏代碼的編寫,發(fā)現(xiàn)Word處理也是非常方便快捷的,可以批量實(shí)現(xiàn)很多功能,對(duì)以后編寫插件有了很多的幫助。

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    成人国产激情福利久久| 国产精品熟女在线视频| 国产美女网红精品演绎| 中文字幕亚洲精品在线播放| 成年女人午夜在线视频| 精品少妇人妻av免费看| 国产一区二区三区四区免费| 大香蕉大香蕉手机在线视频| 亚洲国产精品一区二区毛片| 免费精品国产日韩热久久| 国产日产欧美精品大秀| 不卡免费成人日韩精品| 午夜视频成人在线观看| 欧美在线视频一区观看| 色婷婷在线精品国自产拍| 国产av熟女一区二区三区蜜桃| 色偷偷偷拍视频在线观看| 白白操白白在线免费观看| 成人精品日韩专区在线观看| 福利视频一区二区三区| 久久婷婷综合色拍亚洲| 日韩成人动作片在线观看| 久久精品中文字幕人妻中文| 在线免费国产一区二区三区| 99亚洲综合精品成人网色播 | 91精品视频全国免费| 神马午夜福利一区二区| 精品国产丝袜一区二区| 国产精欧美一区二区三区久久 | 亚洲视频在线观看免费中文字幕| 草草草草在线观看视频| 爱在午夜降临前在线观看| 欧美成人久久久免费播放| 日本二区三区在线播放| 中文字幕人妻综合一区二区| 中文字幕有码视频熟女| 五月婷日韩中文字幕四虎| 亚洲欧美日韩中文字幕二欧美 | 加勒比人妻精品一区二区| 色鬼综合久久鬼色88| 久久99亚洲小姐精品综合|