List 通过VBA查找所有列表项
我正在尝试设置一个发布到网站的文档,因此需要在列表项之前和之后添加一些HTML标记。然而,它并没有把清单上的项目拣起来。有人能帮忙吗?谢谢List 通过VBA查找所有列表项,list,vba,ms-word,word-2007,List,Vba,Ms Word,Word 2007,我正在尝试设置一个发布到网站的文档,因此需要在列表项之前和之后添加一些HTML标记。然而,它并没有把清单上的项目拣起来。有人能帮忙吗?谢谢 sub format_list() Dim para as Paragraph Dim is_list_item as Boolean is_list_item = False For Each para In ActiveDocument.Para
sub format_list()
Dim para as Paragraph
Dim is_list_item as Boolean
is_list_item = False
For Each para In ActiveDocument.Paragraphs
If para.Range.ListFormat.ListType = WdListType.wdListBullet Then
is_list_item = True
para.Range.InsertBefore "<li>"
para.Range.InsertAfter "</li>"
End If
Next
End Sub
子格式_列表()
将段落改为段落
Dim是作为布尔值的\u列表\u项
is_list_item=False
对于ActiveDocument中的每个段落。段落
如果para.Range.ListFormat.ListType=WdListType.wdListBullet,则
列表项是否为真
段落Range.InsertBefore“”
段落Range.InsertAfter“ ”
如果结束
下一个
端接头
尝试在“”
para.Range.Select
Selection.EndKey单位:=wdLine
Selection.TypeText文本:=“”
谢谢@Zaider,但问题是它没有意识到段落是一个列表项(para.Range.ListFormat.ListType=WdListType.wdlistbill
),所以它甚至没有达到你提到的位置。你是如何创建列表的?我只需单击Home选项卡段落部分中的Bullet选项就创建了一些,您的代码可以很好地拾取它们。尝试在您的For Each line下添加Debug.Print para.Range.Text
,当它给出您的列表值时,检查如果para.Range.ListFormat.ListType
的值是多少。结果是,我的代码在进入此步骤之前将样式更改为“Normal”,因此它无法工作。当我意识到这一点时,我做了一个改变,它确实起了作用!谢谢。我注意到is\u list\u item
变量在代码中不起任何作用,因此是多余的,对吗?或者,我错过了什么?
para.Range.Select
Selection.EndKey Unit:=wdLine
Selection.TypeText Text:="</li>"