我在Excel中有一段VBA代码,它将单元格写入纯文本HTML文本,将HTML格式化为IE,然后将其作为格式化文本粘贴回单元格中没有HTML标记。我在这里选择了代码:HTML Text with tags to formatted text in an Excel cell
与我链接的那个问题相反,我必须为很多单元格做这个,所以我想加快一点。由于CreateObject("InternetExplorer.Application")
需要花费很长时间才能处理,因此我尝试多次使用同一个对象,但第二次使用它时就失败了.Navigate "about:blank"
。
以下是代码:
Sub ConvertHTMLrecu()
Dim Ie As Object
Dim rng As Range, rng2 As Range
Dim i As Integer
Dim iChr As Integer
i = 1
Set Ie = CreateObject("InternetExplorer.Application")
For i = 1 To 40
Set rng = Feuil3.Range("A" & i)
Set rng2 = Feuil3.Range("C" & i)
With Ie
.Visible = False
.Navigate "about:blank"
.Document.body.InnerHTML = rng.Value
.ExecWB 17, 0
.ExecWB 12, 2
ActiveSheet.Paste Destination:=rng2
.Quit
End With
Next i
End Sub
我需要什么
我想要两件事之一。要么找到再次导航到空白页面的方法,这样我就可以第二次运行宏而无需重置对象或者找到一种更好的方法来格式化Excel中的HTML文本(因为这就是这个宏所做的一切)。
答案 0 :(得分:2)
您在第一个循环中退出 Ie
对象并尝试在第二个循环中访问该对象,从而出现错误。
只需从循环中移除 .quit
,然后放在 End Sub
之前的最后一行的下方行:
Ie.quit
Set Ie = Nothing