我想找到项目符号列表的实例,以替换为 html 标记列表。请参阅下面的示例:
my_doc.docx
...
text,text,text
My bullet list:
• List point one
• List point two
Some more text here.
...
查找和替换导致
...
text,text,text
My bullet list:
<ul>
<li>List point one</li>
<li>List point two</li>
</ul>
Some more text here.
...
我试过
find and replace
对于子弹字符;无法正常工作,因为它正在格式化。也试过find and replace
对于样式为“列表项目符号”的行和我能找到的任何其他列表样式;不起作用,(可能是因为我使用的是 Word for Mac,这似乎有问题)编辑:
我有以下 VBScript 可以在我的文档中查找具有项目符号样式的行。我现在需要这个脚本来重写它找到的带有 < li> 标签的行。
Sub FindBullet()
Dim oPara As Word.Paragraph
Dim count As Integer
count = 0
Selection.WholeStory
With Selection
For Each oPara In .Paragraphs
If oPara.Range.ListFormat.ListType = _
WdListType.wdListBullet Then
count = count + 1
# from here down it gets shaky!!!
With ActiveDocument.Range.Find
.Text = #How do i convert the oPara to a string here?!?
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.ClearFormatting
With .replacement
.ClearFormatting
.Text = # how do i specify this is where i want the "<li>" & oPara & "</li>"
End With
.Execute Replace:=wdReplaceAll
End If
Next
End With
'Gives you the count of bullets in a document
MsgBox count & " replacements"
End Sub
最佳答案
您可以使用( InsertBefore 和 InsertAfter )在段落中插入文本。
这适用于 Word Mac。
Sub FindBullet()
Dim count As Integer
count = 0
Set myStyle = ActiveDocument.Styles("Body text") ' replacement style
bulletList = WdListType.wdListBullet
' each list instead of each paragraph of the document
For Each thisList In ActiveDocument.Lists
For Each p In thisList.ListParagraphs
If p.Range.ListFormat.ListType = bulletList Then
p.Style = myStyle ' change the style to "Body text"
p.Range.InsertBefore ("<li>")
Set aRange = p.Range
aRange.End = aRange.End - 1
aRange.InsertAfter ("</li>")
count = count + 1
End If
Next
Next
MsgBox count & " replacements"
End Sub
关于vba - 查找项目符号列表并将其替换为 html 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10792737/