2013-02-12 32 views
0

我试图设置一个文档发布到网站,因此需要在列表项前后添加一些HTML标签。但是,它并没有选择清单项目。任何人都可以帮忙吗?谢谢。通过VBA查找所有列表项目

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 
+0

我注意到,'is_list_item'变量没有在代码中发挥任何作用,因此是多余的,正确的呢?或者,我错过了什么? – nam 2016-04-04 15:28:48

回答

1

尝试使用以下,而不是para.Range.InsertAfter "</li>"

para.Range.Select 
Selection.EndKey Unit:=wdLine 
Selection.TypeText Text:="</li>" 
+0

谢谢@Zaider,但问题在于它没有提及该段落是一个列表项('para.Range.ListFormat.ListType = WdListType.wdListBullet'),所以它甚至没有达到你提到的位。 – 2013-02-13 09:20:20

+0

你是如何创建你的列表的?我通过点击Home选项卡的段落部分中的Bullet选项创建了一些选项,并且您的代码可以很好地选择它们。尝试在For Each行下添加'Debug.Print para.Range.Text',并在列表值检查'If para.Range.ListFormat.ListType'的值是什么时。 – Zaider 2013-02-13 13:04:09

+0

原来我的代码在它到达这一步之前将样式更改为“Normal”,所以这就是为什么它不起作用。一旦我明白了,我做了一个改变,它确实起作用了!谢谢。 – 2013-02-13 15:13:13

相关问题