2016-07-06 12 views
0

普通のHTMLテキストが書き込まれたセルを取り込み、そのHTMLをIEに取り込み、HTMLタグなしでセルに戻すVBAコードがExcelにあります。私はここでコードを選んだ:HTML Text with tags to formatted text in an Excel cellExcelでIEの空白ページに移動する

私はリンクされているその質問とは対照的に、私は多くの細胞のためにこれを行う必要があるので、少しスピードアップしたい。 CreateObject("InternetExplorer.Application")は処理に時間がかかりますので、同じオブジェクトを何回か使用しようとしていますが、2回目になると.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 

私は、私は2つのうちのいずれかを希望

が必要なもの:ここで

はコードです。いずれかもう一度空白のページに移動する方法を見つけるので、オブジェクトをリセットせずにマクロをもう一度実行するか、ExcelでHTMLテキストの書式を設定するより良い方法を見つけます(このマクロはすべて実行しています)。

答えて

2

​​オブジェクトを最初のループで終了し、2番目のループで同じものにアクセスしようとすると、エラーが発生します。

ただ単にEnd Sub前の最後の行の行以下のループと場所から.quitを削除:

Ie.quit 
Set Ie = Nothing 
+0

あなたの答えは良かったが、私はまだそれがうまく動作しないことを言いたいです全くループしている。断続的なエラーが発生し、実行ごとに異なる結果が混在します。マクロの作成者(リンクされた)は、このメソッドがランタイムエラーを起こしやすいと警告していました... –

+0

まあ、私はいくつかのダミーデータを試して、うまくいきました。また、私の答えは純粋にあなたの質問に関連しています。いくつかのテストデータを追加できたら、私は一見することができます。 – ManishChristian

+0

私は正常に動作するように管理しましたが、変換する必要があるセルあたり約1/3秒かかっています。あなたの答えは素晴らしいです、それは悪い実行速度です。 –

関連する問題