Vba 将word中的HTML列表转换为项目符号列表
如何在VBA(Word)中创建宏,该宏将运行:Vba 将word中的HTML列表转换为项目符号列表,vba,ms-word,Vba,Ms Word,如何在VBA(Word)中创建宏,该宏将运行: <ul><li>this is just a test</li><li>woop</li><li>test</li></ul> 这只是一个测试woop测试 并生成一个 这只是一个测试 使用Word 2010 原因是html是通过邮件合并从第三方系统传入的 这必须通过我的最终用户的宏来完成!:) 更多详情: 我必须创建如下内容,搜索斜体html标记并插
<ul><li>this is just a test</li><li>woop</li><li>test</li></ul>
- 这只是一个测试
- woop
- 测试
并生成一个
- 这只是一个测试
使用Word 2010
原因是html是通过邮件合并从第三方系统传入的
这必须通过我的最终用户的宏来完成!:)
更多详情:
我必须创建如下内容,搜索斜体html标记并插入Font.Italic
使用ActiveDocument.Range.Find的With ActiveDocument.Range.Find .ClearFormatting .MatchCase = False .MatchWildcards = True .Text = "[<][iI][>]*[<]/[iI][>]" .Replacement.Font.Italic = True .Execute Replace:=wdReplaceAll End With
.ClearFormatting .MatchCase=False .MatchWildcards=True .Text=“[]*[]” .Replacement.Font.Italic=True .Execute Replace:=wdReplaceAll 以
因此,我的问题是,我如何像这样运行文档,找到
实例,循环遍历每个
标记,并将文本作为项目符号列表插入标记中…这里有一个简单的方法来实现您想要的 逻辑 - 创建一个IE实例
- 将
设置为html字符串.InnerHTML
- 将内容从IE复制到word 简言之,让我来干脏活吧 代码
Option Explicit
Sub Sample()
Dim ie As Object
Dim strHtml As String
strHtml = "<ul><li>this is just a test</li><li>woop</li><li>test</li></ul>"
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "about:blank"
ie.Document.body.InnerHTML = strHtml
Do While ie.readystate <> 4: DoEvents: Loop
ie.Document.body.createtextrange.execCommand "Copy"
Selection.Paste
End Sub
选项显式
子样本()
模糊的物体
作为字符串的Dim strHtml
strHtml=“- 这只是一个测试
设置ie=CreateObject(“InternetExplorer.Application”)
可见=真实
即,导航“关于:空白”
ie.Document.body.InnerHTML=strHtml
Do While ie.readystate 4:DoEvents:Loop
ie.Document.body.createtextrange.execCommand“复制”
选择。粘贴
端接头
屏幕截图
这里有一个简单的方法来实现你想要的 逻辑
.InnerHTML
设置为html字符串Option Explicit
Sub Sample()
Dim ie As Object
Dim strHtml As String
strHtml = "<ul><li>this is just a test</li><li>woop</li><li>test</li></ul>"
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "about:blank"
ie.Document.body.InnerHTML = strHtml
Do While ie.readystate <> 4: DoEvents: Loop
ie.Document.body.createtextrange.execCommand "Copy"
Selection.Paste
End Sub
选项显式
子样本()
模糊的物体
作为字符串的Dim strHtml
strHtml=“- 这只是一个测试
设置ie=CreateObject(“InternetExplorer.Application”)
可见=真实
即,导航“关于:空白”
ie.Document.body.InnerHTML=strHtml
Do While ie.readystate 4:DoEvents:Loop
ie.Document.body.createtextrange.execCommand“复制”
选择。粘贴
端接头
屏幕截图
这可能行得通,但我想要一种更干净的方法,也适用于终端用户请解释一下“干净的方法”是什么意思?我不想打开IE来做这些事情,我不希望所有内容都包含在find中,因此我将
- 标记中的所有内容替换为每个
- 标记的迭代,并使用vba WdListType.WDLISTBILT插入
- 中包含的每个可以工作的文本,但我希望有一种更干净的方法,也适用于EndUsers请解释“干净的方法”是什么意思?我不想打开IE来做这件事,我不想把它都包含在查找中,所以我用每个
- 标记的迭代替换
- 标记中的所有内容,并使用vba WdListType.wdListBullet插入
- 中包含的每个文本