2016-07-06 3 views
0

일반 VBA 텍스트가 쓰여진 셀을 사용하는 VBA 코드가 있고이 HTML을 IE로 가져와 셀에 HTML 태그가없는 서식있는 텍스트로 다시 붙여 넣는 VBA 코드가 있습니다. . 여기 코드를 선택했습니다 : HTML Text with tags to formatted text in an Excel cellExcel에서 IE의 빈 페이지로 이동

내가 링크 된 질문과는 달리, 많은 셀에서이 작업을 수행해야하므로 약간의 속도를 높이고 싶습니다. 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 텍스트의 서식을 지정하는 더 좋은 방법을 찾으십시오 (이 매크로가 수행하는 모든 작업이므로).

답변

2

Ie 개체를 첫 번째 루프에서 종료하고 두 번째 루프에서 동일한 개체에 액세스하려고하므로 오류가 발생합니다. 당신의 대답은 좋았다

Ie.quit 
Set Ie = Nothing 
+0

하지만 난 여전히 잘 작동하지 않는다는 것을 말하고 싶습니다

그냥 마지막 줄에 선 아래 루프와 장소에서 .quit 단지 End Sub 전에 제거 전혀 루프에 없습니다. 간헐적 인 오류가 발생하고 실행마다 실행 결과가 서로 다릅니다. 매크로 (링크 된)의 작성자는 메서드가 런타임 오류가 발생하기 쉽다는 경고를했습니다 ... –

+0

글쎄, 나는 더미 데이터로 시도해 봤는데 잘 동작했다. 또한 내 답변은 당신의 질문과 순전히 관련이 있습니다. 몇 가지 테스트 데이터를 추가 할 수 있다면 한 번 살펴볼 수 있습니다. – ManishChristian

+0

제대로 작동하도록 만들었지 만 변환해야하는 셀당 1/3 초가 걸립니다. 그래서 당신의 대답은 훌륭합니다. 그것은 단지 실행 속도가 나쁜 것입니다. –