初学vba,前阵研究老大的代码,看到了不少优秀的令人激动的代码,现在提问一个问题。 Sub Sample() Dim i As Paragraph, MyStr As String Application.ScreenUpdating = False MyStr = "一二三四五六七八九十" '假定为手动加注每个段落开头为中文大写数字 For Each i In Me.Paragraphs If i.Range Like "(#)*" = True Then i.Style = wdStyleHeading9 '标题9是以(1)等开头的数字 ElseIf i.Range Like "#.#.#.#*" = True Then i.Style = wdStyleHeading8 '标题8是以1.1.1.1的形式开头的段落 ElseIf i.Range Like "#.#.#*" = True Then i.Style = wdStyleHeading7 '标题7是以1.1.1的形式开头的段落 ElseIf i.Range Like "#.#*" = True Then i.Style = wdStyleHeading6 '标题6是以1.1形式开头的段落 ElseIf InStr(MyStr, Me.Range(i.Range.Start, i.Range.Start + 1).Text) > 0 Then i.Style = wdStyleHeading5 '标题5是以一等形式开头的段落 Else i.Style = wdStyleNormal '其它为正文样式 End If Next Application.ScreenUpdating = True
End Sub 利用老大该代码能够将手动录入的段落编号转化为制定样式,进而为插入目录提供基础。 问题在于,对存在自动编号的文章(初用word的人,一会儿自动编号,一会儿手动编号,很乱),该代码不能识别自动编号,并且能去除自动编号,未免美中不足。 想知道,能不能用vba操纵自动编号,使之变成普通文本,从而可以顺利的使用老大的代码编排目录。不用vba也行,比如快捷键什么的。我记得可以用Ctil+Shift+F9可以将自动生成的目录固定成普通文本。 谢谢! |