1

Internet Explorer、検索、従業員番号に移動し、その検索からマネージャーを見つけ、最後にそれをコピーしてブックのセルに貼り付けるマクロを作成しています....しかし、常に1つ遅れているようです」コピー」の後ろに。つまり、マクロを実行する前に何かをコピーしてから実行すると、コピーされたものがセルに入ります。それでも、もう一度実行すると、マネージャー名がコピーされます。常に1つの「コピー」が遅れているように見えるか、クリップボードで2番目に新しいアイテムを選択します。また、コードをコピーして貼り付ける前にクリップボードをクリアすると、エラーが発生します。何故ですか?

`Sub Macro1()
'
Dim ie As Object
Set ie = CreateObject("internetexplorer.application") 'start up IE

Dim HWNDSrc As Long
HWNDSrc = ie.HWND   'to setup for focusing internet explorer

ie.Visible = True

ie.navigate "http://url.com/" 'address to find

While ie.Busy   'loop until ie is done loading
     DoEvents
Wend

Call WaitForIE(ie, HWNDSrc, 7) 'to check and make sure ie is done loading

ie.document.getElementById("SSOID").Value = "m1z016p32" 'input into search box

ie.document.getElementById("SSOID").Select
SetForegroundWindow HWNDSrc 'focuses the active application
Application.SendKeys "~"    'enter key
ie.document.getElementById("Advanced").Checked = False  'make sure the advanced box is unchecked


For i = 1 To 200000000      'loop to load the search
i = i + 1
Next i


ie.document.getElementById("Advanced").Checked = False

ie.document.getElementById("SSOID").Select  'focuses the cursor so the tabs will align

SetForegroundWindow HWNDSrc
Application.SendKeys "{TAB 6}"  'tab to location

Application.SendKeys "+{F10}"   'right click on the manger name
Application.SendKeys "{DOWN}"   'goes down to 'copyshortcut'
Application.SendKeys "{DOWN}"

Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "~"        '[presses enter

Windows("Book21").Activate      'workbook o activate
Range("A1").Select          'selects the cell
ActiveSheet.Paste           'past the data



End Sub`
4

1 に答える 1

2

これがロジックです。

URL に移動したら、SSO とパスワードを入力する必要がある HTML オブジェクトを見つけて、 を使用して値を渡すだけです.Value。私はあなたがすでにそれをやっているのを見ます。

次は、ボタンを見つけて、代わりにSubmit使用してクリックイベントをシミュレートすることです.ClickApplication.SendKeys "~"

目的の URL に到達したら、タブを押す代わりに、オブジェクトの要素 ID を見つけてその値を取得し、それを Excel ファイルに書き込みます。

あなたはそれのほとんどをカバーしました。必要なことは、sendkeys を使用する代わりに、ブラウザ要素と直接対話することだけです。

これを見たいと思うかもしれません。Excel にデータを取得する方法を示す興味深い読み物。

cricinfo スコアカードの html 解析

于 2012-07-27T18:55:05.643 に答える