2017-03-11 5 views
0

IEでリンクを開き、Excelでデータと更新を取得するコードがあります。複数のIEウィンドウを同じウィンドウで開き、ウィンドウからデータを取得し、Excelで更新します。

私はこれを毎日4000から5000行実行します。 1つのウィンドウで5000回も移動し、データを取得します。

5〜10個のウィンドウを開き、データを取得してExcelで更新する方法はありますか?それは多くの時間を節約することができます。

Sub Records() 
Application.ScreenUpdating = True 
Application.DisplayAlerts = False 
Dim objIE As InternetExplorer 
Dim a, b, c 

Sheets("Data").Select 
Set objIE = New InternetExplorerMedium 
With objIE 
    .Visible = True 
    For i = 2 To Range("A1").CurrentRegion.Rows.Count 
     a = UCase(Trim(Sheets("Data").Cells(i, 1).Value)): b = Split(a, "-"): CID = b(0): TT = b(1): c = Split(CID, "V"): CN = c(0): PID = c(1) 
     x = "https://abc/" & PID & "/47/billing/phonepayor.esp?CLAIMID=" & CN & "&TRANSFERTYPE=" & TT 
     .Navigate x 
     Do While .Busy Or .ReadyState <> 4 
      DoEvents 
     Loop 
     Set y = objIE.Document.getElementsByClassName("readonlydisplaytable")(2).Cells 
     Sheets("Data").Cells(i, 2).Value = y(19).innerText 
     Sheets("Data").Cells(i, 3).Value = y(21).innerText 
     Sheets("Data").Cells(i, 4).Value = y(7).innerText 
     Sheets("Data").Cells(i, 5).Value = y(9).innerText 
     Sheets("Data").Cells(i, 6).Value = y(5).innerText 
    Next i 
    .Quit 
End With 
MsgBox i - 1 & " Records are completed.", 64, "Automation" 

End Sub 

答えて

0

スプレッドシートを分割して、別のコンピュータのservalでマクロを実行することが最良の方法です。同じコンピュータ上で複数のIEセッションを実行する利点はありません。ボトルネックはブラウザです。私は複数の仮想マシンを走らせることがこのボトルの首に来るかどうか調べようとはしていない。

+0

ありがとうございました。現在、私はそのような処理を行っています。スマートなやり方で他のコーディングが関わっているかもしれないと考えました。 –

関連する問題