Dim bContinue As Boolean bA^:p3
t>GLZzO
Dim regEX As New RegExp TgE.=`
"7
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 QqK{~I|l
YZ:'8<
Dim LastTitle0String As String, LastTitle0No As Long :G=1$gb
Dim LastTitle1String As String, LastTitle1No As Long RyQ\5^z
Dim LastTitle2String As String, LastTitle2No As Long _&Uo|T
Dim LastTitle3String As String, LastTitle3No As Long 4i\aW:_'i
Dim LastTitle4String As String, LastTitle4No As Long Y1_6\zpA
Dim LastTitle5String As String, LastTitle5No As Long `(Q_ 65y
Dim LastTabelString As String, LastTableNo As Long h8= MVh(I
Dim LastFigureString As String, LastFigureNo As Long VfC[U)w*vm
nB
Iv{
Dim strSeperator As String &Yks,2:P
x*"pDI0k)
Sub ConvertWidth(fTEXT As String, rText As String) `{Di*
Selection.Find.ClearFormatting \v
P2B
Selection.Find.Replacement.ClearFormatting :mV7)oWH
Selection.Find.Wrap = wdFindContinue |XA aKZA
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText *o\Y~U-so
DoEvents X1V}%@3:
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 2X;0z$
End Sub zV(tvt
]#-/i2-K
Sub ClearDomain() &T/q0bwd
With Selection.Find 2N8sq(LK{
.ClearFormatting 5A]LNA4i
.Replacement.ClearFormatting ;7^j-6
.Wrap = wdFindContinue UNcJ=
Me.txtStatus.Text = "清除所有域代码" ~v(M6dz~vk
DoEvents u3i|}`
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False Ysc|kxLb
End With 2\CkX
End Sub ]G
o~]7(5|
?]:EmP
Private Sub cmdCheck_Click() p9 ,\ {Is
bContinue = True 2:HP5
Dim NoSeries1(1 To 16) As String sEJ;t0.LX
Dim NoSeries2(1 To 16) As String $s(4?^GP
Dim NoSeries5(1 To 16) As String 3G/ mB
Dim NoSeriesRM(1 To 16) As String dYew7
Dim paraTotal As Long, ParaText As String lp0T\
%
Dim ttString As String, ttNo As String iMeRQYW
?r'TH/>
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long nK%/tdq
-f;j1bQ
Me.txtStatus.Visible = True IJBJebqL
Me.lbParaType.Visible = True vb. Y8[
Me.cmdCheck.Enabled = False sa gBmA~
L!b0y7yR
i_'R"ob{S
{{[jC"4AY
L1!hF3G
Dim ParaType As String, rText As String p5# P
r
&0
)xvZ
Selection.WholeStory ~iR!3+yg4
Selection.NoProofing = True #b"5L2D`y'
)av'u.]%c
tm1 = Now >7(~'#x8A"
NZ+?Ydr8k
ActiveWindow.View.Type = wdNormalView W/ZahPPq
73s3-DS,
NoSeries1(1) = "一" voej ~z+
NoSeries1(2) = "二" Wh'_slDH+
NoSeries1(3) = "三" CMxjX
NoSeries1(4) = "四" )
3`
NoSeries1(5) = "五" X6N]gD
NoSeries1(6) = "六" seqF84
Xd<
NoSeries1(7) = "七" $L&9x3+?Kg
NoSeries1(8) = "八" L3=YlX`UL
NoSeries1(9) = "九" Dss/>!
mN
NoSeries1(10) = "十" LY88;*:S
NoSeries1(11) = "十一" ^I0GZG
NoSeries1(12) = "十二" bHQK
RV
NoSeries1(13) = "十三" oB{}-[G
NoSeries1(14) = "十四" >upXt?
NoSeries1(15) = "十五" X?v^>mA
NoSeries1(16) = "十六" 77&^$JpM
~ut& U
NoSeries2(1) = "㈠" qnk,E-
NoSeries2(2) = "㈡" eYD9#y
NoSeries2(3) = "㈢" z Jo#3
NoSeries2(4) = "㈣"
G_, t\
NoSeries2(5) = "㈤" @F(3*5c_Y
NoSeries2(6) = "㈥" j
zmSFK g*
NoSeries2(7) = "㈦" %L \{kUam
NoSeries2(8) = "㈧" ?Str*XA;
NoSeries2(9) = "㈨" B:A1W{l
NoSeries2(10) = "㈩" o S:vTr+$
?4,*RCaI
NoSeries5(1) = "①" (|a$N.e&K
NoSeries5(1) = "②" 6|9g4@Hy
NoSeries5(3) = "③" :af;
yu
NoSeries5(4) = "④" Xv7U<q
NoSeries5(5) = "⑤" peTO-x^a-
NoSeries5(6) = "⑥" hNq8
uyKx
NoSeries5(7) = "⑦" gcW{]0%L^
NoSeries5(8) = "⑧" $kD`$L@U
NoSeries5(9) = "⑨" [,o5QH\Etq
NoSeries5(10) = "⑩" c]aK
N
leb^,1/D6
z^a!C#IX
NoSeriesRM(1) = "I" d0}%
%T
NoSeriesRM(2) = "II" \BbOljM=
NoSeriesRM(3) = "III" rm)SfT<
NoSeriesRM(4) = "IV" RqN_vk\
NoSeriesRM(5) = "V" K7[AiU_I
NoSeriesRM(6) = "VI" JX\T
{\m#
NoSeriesRM(7) = "VII" DtJTnvG~B
NoSeriesRM(8) = "VIII" =6Kv`
NoSeriesRM(9) = "IX" &t*8oNwSs
NoSeriesRM(10) = "X" kO,VayjT
NoSeriesRM(11) = "XI" 6Er0
o{iI
NoSeriesRM(12) = "XII" Z*vpQBbu
NoSeriesRM(13) = "XIII" ghJ,s|lH
NoSeriesRM(14) = "XIV" +Sd x8 Z5
NoSeriesRM(15) = "XV" /,uSCITD
NoSeriesRM(16) = "XVI" (4{ C7
#EQx
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) 2NArE@
ll<9f)
If i = vbNo Then VNxpOoV=S
Exit Sub `3sy>GU?
End If Lr24bv\
B=Zukg1G
If Me.chkSuper.Value Then \Sq"3_m4T
Me.txtStatus.Text = "检查修改所有的上标格式" JJ
N(M*;
74}eF)(me
CheckSuperScript EYJ i6#
we H@S
End If I"F
.%re
94'k7_q
If Me.chkStyle.Value Then |?fW!y
Me.txtStatus.Text = "设置样式,请稍候...." mS)|6=Y
DoEvents ~*PK080N}
CeateOrModifyStyle HV$9b~(
End If '!yS72{$2
.cH{WZ
Ah" 'hFY
q(jkit~`A
ClearDomain GEe 0@q#YA
9#EHXgz
[N+ m5{tT
?LV-W
If Me.chkLIST.Value Then m>abK@5na
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" }4\!7]FVYX
0x>/ 6 <<
ConvertListToOrdinary &Xn8o
e
End If aX[1H6&=7
1|l)gfcP
}W__ffH
Dim pType As String, trimpTEXT As String $xUzFLh=`
If Me.chkNum.Value = True Then ,>QMyI
hv
Me.txtStatus.Text = "转换全角数字形式为半角" 8=n9
hLhqo
ConvertWidth "1", "1" L)R[)$2(g
DoEvents dIk8TJ
ConvertWidth "2", "2" +C'TW^
DoEvents dxkRk#mf:
ConvertWidth "3", "3" 9Ew:.&d
DoEvents 6m-:F.k1(
ConvertWidth "4", "4" %eutfM-?6
DoEvents zU4V^N'
ConvertWidth "5", "5" f- k|w%R@
DoEvents ax72e hL}
ConvertWidth "6", "6" c+Q.?vJ
DoEvents 0U~;%N+lv
ConvertWidth "7", "7" i!1ho T$
DoEvents u6iU[5
ConvertWidth "8", "8" }:RT,<
DoEvents >2| [EZ
ConvertWidth "9", "9" nI` f_sp
DoEvents ]8xc?*i8
ConvertWidth "0", "0" !e:iB7<
DoEvents ~<2 IIR$H
ConvertWidth "a", "a" T<TcV9vM
DoEvents k"q!|+&Fs
ConvertWidth "b", "b" OD?y
DoEvents /slm
]'
ConvertWidth "c", "c" .0Iun+nUD
DoEvents O:5Rp_?^
ConvertWidth "d", "d" EI=Naq
DoEvents *%OYAsc
ConvertWidth "e", "e" I9[1U
DoEvents "W &:j:o
ConvertWidth "f", "f" J8u{K.(*7
DoEvents z_:eM7]jv
ConvertWidth "g", "g" tp
6csS,
DoEvents o
[bE
ConvertWidth "h", "h" Z{,GZT
DoEvents q
3AJwELXw
ConvertWidth "i", "i" 4GU/V\e|
DoEvents 2qs>Bshf
ConvertWidth "j", "j" @pF
fpHq?>
DoEvents 5|<yfk8*J
ConvertWidth "k", "k" z.2r@Psk
DoEvents u0bfX,e2U
ConvertWidth "l", "l" &dhcKO<4
DoEvents [K c
ki+
ConvertWidth "m", "m" V>b2b5QAH,
DoEvents P+)qE6\
ConvertWidth "n", "n" 74@lo-/LY
ConvertWidth "o", "o" zb>f;[
ConvertWidth "p", "p" :]CzN^k(1c
ConvertWidth "q", "q" g.B%#bfg
ConvertWidth "r", "r" ,:#,}w_HyO
ConvertWidth "s", "s" !US8aT
ConvertWidth "t", "t" <*s"e)XeqF
ConvertWidth "u", "u" +Dx1/I
ConvertWidth "v", "v" Vs#"SpH{'
ConvertWidth "w", "w" C5O5S:|'
ConvertWidth "x", "x" ?muDTD%c
ConvertWidth "y", "y" [[R7~.;
ConvertWidth "z", "z" S~@r
ConvertWidth "A", "A" ;y>S7n>n:
ConvertWidth "B", "B" v !
7s
M
ConvertWidth "C", "C" %
v;e
ConvertWidth "D", "D" r\$6'+Si
ConvertWidth "E", "E" w)+wj[6
E
ConvertWidth "F", "F" NFk}3w:
ConvertWidth "G", "G" yfmp$GO:
ConvertWidth "H", "H" ?PBa'g
ConvertWidth "I", "I" 403[oOj
ConvertWidth "J", "J" >5)
<Uv$
ConvertWidth "K", "K" T>}0) s
ConvertWidth "L", "L" #O2wyG)oU
ConvertWidth "M", "M"
f~w>v
ConvertWidth "N", "N" +hE',i.
ConvertWidth "O", "O"
BdN8
^W
ConvertWidth "P", "P" NH7`5mF$
ConvertWidth "Q", "Q" {Ge+O<mD
ConvertWidth "R", "R" FJP< bREQ
ConvertWidth "S", "S" yJ!OsD
ConvertWidth "T", "T" @Ii-NmOr
ConvertWidth "U", "U" 0U$:>bQ
ConvertWidth "V", "V"
KcC!
N{
ConvertWidth "W", "W" `I5O4|K)
ConvertWidth "X", "X" +c^_^Z$_4o
ConvertWidth "Y", "Y" r55qmPhg
ConvertWidth "Z", "Z" &4,WG
ConvertWidth "^l", "^p" '
|&>
/dyq
ConvertWidth "(", "(" &&[zT/]P
ConvertWidth ")", ")" :.*HQt9N
#SKfE
End If `NBbTQtgO
!Y (apVQ
With ActiveDocument K&=D-50%
Dim tbl As Table O0^?f/&k
For Each tbl In .Tables !Eq#[Gs
tbl.Rows.Alignment = wdAlignRowCenter ^_v[QV
tbl.Range.Font.NameFarEast = "楷体" WfTD7?\dw
tbl.Range.Font.NameAscii = "Times New Roman" o^3FL||P#r
tbl.Range.Font.Size = 10.5 t)YUPDQ@J
Next \)ip>{WG
Set tbl = Nothing H2_/,
n
End With ev9;Ld
Zp?4uQ)[W
JnfqXbE
With ActiveDocument $}t=RW
,4[dLWU
For i = 1 To .TablesOfContents.Count 3Jk[/.h
.TablesOfContents(i).Delete 3sH\1)Zz
Next k`Nyi)AGe
|xn#\epy@
tAF]2VV(e
'It?wB W
paraTotal = .Paragraphs.Count m#tpbFAsc
paraCounter = 1 et=7}K]l
A (Bk@;
LastTitle0No = 0 ]eE 1n2
LastTitle1No = 0 $@_{p*q
LastTitle2No = 0 ^YGTh0$W
LastTitle3No = 0 P0^c?s"I
LastTitle4No = 0
M\Se_
LastTableNo = 0 ?hnx/z+uT
LastFigureNo = 0 ;HDZ+B
eP "`,<
Dim Sec As Long ebqg"tPN{
3y99O
$EAc
Sec = InputBox("正文从第一节开始?", "节设置", 6) MDJc[am
If Sec = 0 Then \[yr=X
Exit Sub &VDl/qnaL
End If |^R*4;Phe
)zU:
k = 0 Fh K&@@_
Do While (paraCounter < paraTotal) And bContinue m`z7fi7u
k = k + 1 axmsrjW#
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then -"=)z/
S
Exit Do e@E17l-
End If EIr@g
paraCounter = paraCounter + 1 +b^]Pz5
If k Mod 20 = 0 Then
2nv[1@M
Me.lbCounter.Caption = paraCounter !xu9+{-
DoEvents 1BJ<m5/1%
End If U&X2c
R &a
Loop av-#)E
Ga v"C{G
SxJ$b
Do While (paraCounter < paraTotal) And bContinue [)^mBVht
nZfs=@w:y
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) ]4`t\YaT
ShapeHeight = 0 (89Ji'dc
ShapeWidth = 0 hq=,Z1J
(&jW}1D
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth +Mk#9r
OF[?Z
Select Case ParaType #)o7"PW:
Case "【】表格内容" B{C_hy-fw
.Paragraphs(paraCounter).Style = "QLNU表格内容" XVt/qb%)r
Case "章" `H>b5
LastTitle0No = LastTitle0No + 1 ?]c+j1i
'新一章开始,复位其下属标题编号 `\bT'~P
LastTitle1No = 0 FZF @
LastTitle2No = 0 [ $pmPr2
LastTitle3No = 0 (9 sIA*,}
LastTitle4No = 0 ciudRK63M
^"9*
'vTtc
k = Val(ttNo) >{C\H.N
If k = 0 Then '非数字编号章节 {^#2=`:)O
If ttNo <> NoSeries1(LastTitle0No) Then ?7
\\e ;j}
rText = "第" & NoSeries1(LastTitle0No) & ttString B:<
]Hl$
Me.ErrMsg.AddItem "章节编号错误:" & ParaText )tS-.P rA-
End If {CtR+4KD
Else ]dSK
wxk
If Val(ttNo) <> LastTitle0No Then t V03+&jF
rText = "第" & LastTitle0No & ttString "xe=N
Me.ErrMsg.AddItem "章节编号错误:" & ParaText /.Fj.6U5
End If 4U=75!>
v!9i"@<!
End If 54{q.I@n
F30
]
'章段落设置 MuwQZ]u
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 3uV4/%U
.Paragraphs(paraCounter).Style = "QLNU章节" mk!Dozb/
.Paragraphs(paraCounter).Range.Select !4WEk
Selection.EndKey unit:=wdLine .Pe9_ZH$W
tc = Replace(rText, vbCr, "") ^rL_C}YBj-
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False sYqgXE.
Case "一级标题" Gh}yb-$N`&
LastTitle1No = LastTitle1No + 1 ]N^*tO
'新一级标题开始,复位其下属标题编号 [ %}u=}@
LastTitle2No = 0 j(eFoZz,
LastTitle3No = 0 Pao%pA.<
LastTitle4No = 0 D'b#,a;V
+f>c xA
If ttNo <> NoSeries1(LastTitle1No) Then $d/&k`
rText = NoSeries1(LastTitle1No) & "、" & ttString ?P/AC$:|I
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText */z??fI27
End If .m;G$X|3U
tu0aD%C
TW7:q83{l
'一级标题段落设置 格式:一、标题内容 2#
vv$YD
.Paragraphs(paraCounter).Range.Text = rText d,0 }VaY=D
.Paragraphs(paraCounter).Style = "QLNU一级标题" +pf5\#l?
.Paragraphs(paraCounter).Range.Select <P_ea/5:|
Selection.EndKey unit:=wdLine {^}0 G^
tc = Replace(rText, vbCr, "")
#DFV=:|~
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False c0_E_~
Case "二级标题" ('C7=u&F
LastTitle2No = LastTitle2No + 1 O/Rhf[7v*
'新二级标题开始,复位其下属标题编号 oFDz;6
LastTitle3No = 0 ujr(K=E
LastTitle4No = 0 5|I55CTx
hIY
Te
If ttNo <> NoSeries1(LastTitle2No) Then t{d
SX?<nt
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString J
BC$Ku
ErrMsg.AddItem "二级标题编号错误:" & ParaText c)}2K0
End If 4nqoZk^R
u,1}h L
'二级标题段落设置 格式:(一)、标题内容 AVl~{k|
.Paragraphs(paraCounter).Range.Text = rText bc I']WgB-
.Paragraphs(paraCounter).Style = "QLNU二级标题" ,qQG;w,m
x[Im%k
.Paragraphs(paraCounter).Range.Select =8Ehrlq
Selection.EndKey unit:=wdLine
Pm+tQ
tc = Replace(rText, vbCr, "") rY0u|8.5Q
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False \(
)#e
kL>d"w
Case "三级标题" 4-R^/A0
LastTitle3No = LastTitle3No + 1 2-'Opu
'新三级标题开始,复位其下属标题编号 OtTBErQNF
LastTitle4No = 0 -.IEgggf
2;$k(x]
If Val(ttNo) <> LastTitle3No Then 9zBMlc$X
rText = LastTitle3No & ". " & ttString R"AUSO|{
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText n6MM5h/#r
:7g=b%;
End If C[uOReo
'三级标题段落设置 格式:1. 标题内容 x%N\5 V1
.Paragraphs(paraCounter).Range.Text = rText WC,+Cn e
.Paragraphs(paraCounter).Style = "QLNU三级标题" w%y\dIeI'
.Paragraphs(paraCounter).Range.Select 2HD]?:Fk7
Selection.EndKey unit:=wdLine f )Z%pgB
tc = Replace(rText, vbCr, "") eq[Et
+
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False nV*y`.+
Case "四级标题" MFt*&%,JX
LastTitle4No = LastTitle4No + 1 Sv'y e
71fk.16
If Val(ttNo) <> LastTitle4No Then I.'b'-^
rText = "(" & LastTitle4No & "). " & ttString e`K)_>^n#
ErrMsg.AddItem "四级标题编号错误:" & ParaText G8Z 4J7^
{Qv>q$Q
End If ]m4OIst
'四级标题段落设置 格式:(1). 标题内容 S'LZk9E
.Paragraphs(paraCounter).Range.Text = rText "*z_O
.Paragraphs(paraCounter).Style = "QLNU四级标题" yX!HZu;j
.Paragraphs(paraCounter).Range.Select 0d^Z uTN
Selection.EndKey unit:=wdLine ,=QM#l]
tc = Replace(rText, vbCr, "") jS.g]k
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 4 ", PreserveFormatting:=False p\p\q(S">
A"v{~
Case "表格标题" F {+`uG
LastTableNo = LastTableNo + 1 5J2=`=FK
lrWQOYf2
If ttNo <> CStr(LastTableNo) Then /)
4GSC}Gg
rText = "表" & LastTableNo & ". " & ttString "LhvzM-<8
ErrMsg.AddItem "表格编号错误:" & ParaText ~utJB 'gr
crcA\lJf
End If tK(g-u0N`(
L';MP^
'表格名称段落设置 格式:表1. 表格名称 "2?l{4T\
.Paragraphs(paraCounter).Style = "QLNU表格标题" D${={x
xe = Replace(rText, vbCr, "") &HW1mNF9
.Paragraphs(paraCounter).Range.Select d[
D&J
Selection.MoveEnd wdCharacter, -1 '选择范围包括行尾的换行符。 I1Sa^7
Selection.Range.Text = xe N8r*dadDd
Selection.EndKey 7nU6k%_ %
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False @}-r&/#
SqA
J-_~
Case "表格首行" n5-)/R[z
.Paragraphs(paraCounter).Style = "QLNU表格首行" N|g;W
Case "图片标题" +rXF{@
l
LastFigureNo = LastFigureNo + 1 Pmg)v!"
DZS]AC*
If ttNo <> CStr(LastFigureNo) Then a:TvWzX,
rText = "图" & LastFigureNo & ". " & ttString fvq,,@23
ErrMsg.AddItem "表格编号错误:" & ParaText 8eBOr9l+j
8~lIe:F-
End If !4"^`ors$
'图片名称段落设置 格式:图1. 图名称 >Esz
iRm
.Paragraphs(paraCounter).Range.Text = rText ^Xb7[+I6
.Paragraphs(paraCounter).Style = "QLNU图片标题" i_Re*
.Paragraphs(paraCounter).Range.Select Ycr3HLJy
Selection.EndKey unit:=wdLine Z?P~z07
xe = Replace(rText, vbCr, "") epHJ@ W@#
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False g*UMG>
Case "正文" y&m0Lz53Z
'正文名称段落设置 wXMDh$
.Paragraphs(paraCounter).Style = "QLNU正文" Yap?^&GV
Case "文献条目" I04jjr:<
With .Paragraphs(paraCounter) 4+$b~u
'.Range.Select B/JO~;{
'Selection.ClearFormatting A-
YBQPE
'.Range.Find.Execute findtext:=rText, replacewith:=strSeperator 'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” F>je4S;
.Style = "QLNU参考文献" "9EE1];NT
End With X~=xXN.
Case "图表注解" j%u-dr
With .Paragraphs(paraCounter) iD38\XNMV
.Range.Font.NameFarEast = "楷体" uMb>xxf
.Range.Font.NameAscii = "Times New Roman" M 3 '$[
.Range.Font.Size = 9 '小5号字 qBV x
6MI
l%ay
I
.Alignment = wdAlignParagraphCenter _@mRb^
.LeftIndent = 0 OLGBt
.RightIndent = 0 eN?Y7
.FirstLineIndent = 0 6lwta`2
.LineSpacing = 12 K,'*Dz
.LineSpacingRule = wdLineSpaceExactly 'ly?P8h
.LineUnitAfter = 0 ._w8J"E5
.LineUnitBefore = 0 im7nJQ^H$q
.OutlineLevel = wdOutlineLevelBodyText u]-_<YZ'B
.PageBreakBefore = False [D-Q'"'A
.RightIndent = 0 7
;@ST`cC
.WordWrap = True @`opDu!
.LineUnitAfter = 0.5 g"s$}5{8:
E/&Rb*3
End With 0Sq][W=
Case Else =<r8fXWZ
'不作处理 o%{'U
G
End Select ~\)qi=
| Xi%
'含有inlineshape的段落处理 :A
%^^F%
If ShapeHeight > 30 Then FWue;pw3
.Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle '对有图片的段落设置为单倍行距 RO;Bl:x4
End If %J:SO_6
D\w h;r
If (ShapeWidth + ShapeHeight) > 150 Then do*}syQ`O
.Paragraphs(paraCounter).Style = "QLNU图片段落" 8P7"&VYc8
End If `@d<n
*L6PLe
'段落计数器递 v
K7\JZ>
paraCounter = paraCounter + 1 uwf
5!Z:>
Me.lbCounter.Caption = "当前检测段落:" & paraCounter GZS1zTwBL
Me.txtStatus.Text = ParaText n+@F`]Ke
DoEvents h&
.wo !
Loop H1GRMDNXOA
End With @E( 7V(m/
Pg9hW
msg = "" T9)nQ[
d)cOhZy
For i = 0 To Me.ErrMsg.ListCount - 1 fkSO( C)
msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) Z=B_Ty
Next XC 7?VE
E:zF/$tG
b`yZ|j'ikd
%*aJLn+]_R
Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg ]5~s"fnG
Me.cmdCheck.Enabled = True DFhXx6]
Me.txtStatus.Visible = True ?Xdak|?i
Me.lbParaType.Visible = False _lzyMEdr
BqDKT
bContinue = False !Fo*e
End Sub 9a\nszwa
YprHwL
Sub CheckPara(ByRef ChKRange As Range, ParaType As String, ReplaceTEXT As String, TitleString As String, TitleNo As String, shpCounter As Long, MaxShpHeight As Long, TotalShpWidth As Long) <IW#M
E
Dim pTEXT As String |(moWY=
MV_Srz
pTEXT = ChKRange.Text WW+l' 6.
D|Iur W1f
ParaType = "其它" }bN%u3mHws
TitleString = pTEXT {oc igR0
TitleNo = "N/A" 6S6f\gAM
73{'kK
shpCounter = ChKRange.InlineShapes.Count HEL!GC>#
If shpCounter <> 0 Then [b{CkX06
MaxShpHeight = 0: TotalShpWidth = 0 `Y-|H;z
For i = 1 To shpCounter QB.J,o*XD4
k = ChKRange.InlineShapes(i).Height )"f
N!9,F
l = ChKRange.InlineShapes(i).Width I;5R2" 3
If k > MaxShpHeight Then du$|lxC
MaxShpHeight = k g(VNy@
End If Mb3}7 @/[
TotalShpWidth = TotalShpWidth + l [7(-T?_
Next J q{
7R
If MaxShpHeight > 60 Or TotalShpWidth > 150 Then 1Je9,dd6
Exit Sub 1im^17X
End If Wg{k$T_>
End If o"wXIHUmV
l4n)#?Q?
'空行 WN(ymcdYB
If Len(pTEXT) <= 2 Then qq)0yyL r
Exit Sub y;mj^/SxK
End If m)V/L]4
DeR='7n
AL$&|=C-$
'是否为表格中的文字 }:0uo5B7
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then !D!~^\
ParaType = "表格内容" [E#UGJ@
k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) '$4O!YI9@
If k = 1 Then [."[pY
ParaType = "表格首行" G}5 #l
End If 8WE{5#oi
Exit Sub p a}*E
End If zR!o{8
??
TMSH
'例外情况:脚注 +&zYZA