2017-12-04 14 views
0

したがって、VBAを使用してウェブサイトのすべてのオプションを選択しようとしています。 オプションが変更されることがありますが、すべてを選択したい場合があります。VBAを使用してHTMLのすべてのオプションを選択してください

以下は、選択メニューのhtmlコードです。

<select class="locationSelect" id="ReceiptLocations" multiple="multiple" name="ReceiptLocations" size="10"><option value="7">Bayhurst 1</option> 
<option value="157">Union Parkway Belt</option> 
<option value="260">Union SSMDA</option> 
<option value="261">Union WDA</option> 
<option value="244">Welwyn</option> 
<option value="83343">Whitewood Receipt</option> 
</select> 

Excelで私の現在のコードは次の通りである:私はに実行

Sub extract() 
    Dim oIE As Object 
    Dim ohtml As HTMLDocument 
    Dim objOption As Object 

Set oIE = CreateObject("InternetExplorer.Application") 
oIE.Navigate ("http://itbidfloors.transcanada.com/") 
oIE.Visible = True 


' Wait while IE loading 
Do 
    DoEvents 
Loop Until oIE.ReadyState = 4 


For Each objOption In oIE.Document.getElementsByClassName("locationSelect").getElementsByID("ReceiptLocations").Options 
     objOption.Selected = True 
Next 

End Sub 

エラーは、オブジェクトは、このプロパティまたはメソッドをサポートしてdoesntのです。 私は利用可能なすべてのオプションを選択したいので、この場合はforループを使用しています。

私はここで間違っていますか? oIE.Document.getElementByIDの各objOption(「ReceiptLocations」)については、事前に おかげ

+0

は '。あなたがクラスで最初にフィルタする必要はありませんので、' id'attributeは、文書ごとに一意である必要がありますOptions'メソッド名に 's'が追加されています。 –

+0

ありがとうTim!私のために働いた – sTang

答えて

0
Sub extract() 
    Dim oIE As Object 
    Dim ohtml As HTMLDocument 
    Dim objOption As Object 

Set oIE = CreateObject("InternetExplorer.Application") 
oIE.Navigate ("http://itbidfloors.transcanada.com/") 
oIE.Visible = True 


' Wait while IE loading 
Do 
    DoEvents 
Loop Until oIE.ReadyState = 4 


For Each objOption In oIE.Document.getElementsByClassName("locationSelect").getElementsByID("ReceiptLocations").Options 
     objOption.Selected = True 
Next 

End Sub 
関連する問題