最近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支持的類型,所以上面的代碼需要稍加修改。修改后的代碼如下:
其實(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ù)即可刪除段落前后的空格,司法小伙伴給出的代碼如下:
本以為上面的代碼能否正常工作,也就是能刪掉段落前后的空格,其實(shí)該代碼并沒(méi)有起到作用,通過(guò)調(diào)試發(fā)現(xiàn),Word中有一個(gè)特殊的段落結(jié)尾,哪怕是空行,只要有一個(gè)回車,其實(shí)改段落的長(zhǎng)度Len也是1,并非等于0,故修改為如下的代碼:
代碼演示如下動(dòng)態(tài)圖所示: 其實(shí)更多的時(shí)候我們需要?jiǎng)h除一個(gè)段落中的所有空格,其實(shí)可以通過(guò)最前面說(shuō)過(guò)的查找和替換功能,可以替換全部空格為空即可。可以通過(guò)如下代碼完成對(duì)段落空格的替換:
一般軟件都提供有替換和全部替換功能,Word也不例外,正如上面對(duì)面中的wdReplaceOne(替換)和wdReplaceAll(全部替換)。 其實(shí)上面代碼的循環(huán)已經(jīng)沒(méi)有了意義,直接按照章節(jié)來(lái)替換會(huì)更加方便快捷,具體代碼如下:
具體代碼演示如下動(dòng)態(tài)圖所示: 經(jīng)過(guò)幾次Word宏代碼的編寫,發(fā)現(xiàn)Word處理也是非常方便快捷的,可以批量實(shí)現(xiàn)很多功能,對(duì)以后編寫插件有了很多的幫助。 |
|