Excel 通过vba从网站下拉列表中选择值
我试图选择网站的价值下降,我尝试了这么多的方式,但没有工作 我被困在一个点上,需要从下拉框中选择值 我有四个下拉列表,我想选择选项下拉列表,然后转到下一个下拉列表,ima卡在第一个下拉列表中Excel 通过vba从网站下拉列表中选择值,excel,vba,web-scraping,browser-automation,Excel,Vba,Web Scraping,Browser Automation,我试图选择网站的价值下降,我尝试了这么多的方式,但没有工作 我被困在一个点上,需要从下拉框中选择值 我有四个下拉列表,我想选择选项下拉列表,然后转到下一个下拉列表,ima卡在第一个下拉列表中 Sub Select_dropdown_item() Dim IE As InternetExplorer Dim drp As Variant dname = Range("A1").Value Set IE = New InternetExplorer IE.Visible = True IE.navi
Sub Select_dropdown_item()
Dim IE As InternetExplorer
Dim drp As Variant
dname = Range("A1").Value
Set IE = New InternetExplorer
IE.Visible = True
IE.navigate "https://anyror.gujarat.gov.in/"
While IE.Busy = True Or IE.readyState <> 4: DoEvents: Wend
IE.document.getElementById("Button1").Click
If IE.LocationURL = "https://anyror.gujarat.gov.in/CustomError.htm" Then
IE.Quit
MsgBox ("website can not comunicate with server")
Else
''if the script fails, activate the delay
'Application.Wait Now + TimeValue("00:00:05")
End If
Set drp = IE.document.getElementById("ddlDistrict")
For x = 0 To drp.Options.Length - 1
If drp.Options(x).Value = dname Then
drp.selectedIndex = x
Exit For
End If
Next
End Sub
<option selected="selected" value="0">પસંદ કરો</option>
<option value="01">કચ્છ</option>
<option value="02">બનાસકાંઠા</option>
<option value="03">પાટણ</option>
<option value="04">મહેસાણા</option>
<option value="05">સાબરકાંઠા</option>
<option value="06">ગાંધીનગર</option>
<option value="07">અમદાવાદ</option>
<option value="08">સુરેન્દ્રનગર</option>
<option value="09">રાજકોટ</option>
<option value="10">જામનગર</option>
<option value="11">પોરબંદર</option>
<option value="12">જુનાગઢ</option>
<option value="13">અમરેલી</option>
<option value="14">ભાવનગર</option>
<option value="15">આણંદ</option>
<option value="16">ખેડા</option>
<option value="17">પંચમહાલ</option>
<option value="18">દાહોદ</option>
<option value="19">વડોદરા</option>
<option value="20">નર્મદા</option>
<option value="21">ભરુચ</option>
<option value="22">સુરત</option>
<option value="23">ડાંગ</option>
<option value="24">નવસારી</option>
<option value="25">વલસાડ</option>
<option value="26">તાપી</option>
<option value="27">દેવભુમિ દ્વારકા</option>
<option value="28">મોરબી</option>
<option value="29">ગીર સોમનાથ</option>
<option value="30">બોટાદ</option>
<option value="31">અરવલ્લી</option>
<option value="32">મહિસાગર</option>
<option value="33">છોટાઉદેપુર</option>
所以请帮忙
这是我的第一个下拉列表的html代码
Sub Select_dropdown_item()
Dim IE As InternetExplorer
Dim drp As Variant
dname = Range("A1").Value
Set IE = New InternetExplorer
IE.Visible = True
IE.navigate "https://anyror.gujarat.gov.in/"
While IE.Busy = True Or IE.readyState <> 4: DoEvents: Wend
IE.document.getElementById("Button1").Click
If IE.LocationURL = "https://anyror.gujarat.gov.in/CustomError.htm" Then
IE.Quit
MsgBox ("website can not comunicate with server")
Else
''if the script fails, activate the delay
'Application.Wait Now + TimeValue("00:00:05")
End If
Set drp = IE.document.getElementById("ddlDistrict")
For x = 0 To drp.Options.Length - 1
If drp.Options(x).Value = dname Then
drp.selectedIndex = x
Exit For
End If
Next
End Sub
<option selected="selected" value="0">પસંદ કરો</option>
<option value="01">કચ્છ</option>
<option value="02">બનાસકાંઠા</option>
<option value="03">પાટણ</option>
<option value="04">મહેસાણા</option>
<option value="05">સાબરકાંઠા</option>
<option value="06">ગાંધીનગર</option>
<option value="07">અમદાવાદ</option>
<option value="08">સુરેન્દ્રનગર</option>
<option value="09">રાજકોટ</option>
<option value="10">જામનગર</option>
<option value="11">પોરબંદર</option>
<option value="12">જુનાગઢ</option>
<option value="13">અમરેલી</option>
<option value="14">ભાવનગર</option>
<option value="15">આણંદ</option>
<option value="16">ખેડા</option>
<option value="17">પંચમહાલ</option>
<option value="18">દાહોદ</option>
<option value="19">વડોદરા</option>
<option value="20">નર્મદા</option>
<option value="21">ભરુચ</option>
<option value="22">સુરત</option>
<option value="23">ડાંગ</option>
<option value="24">નવસારી</option>
<option value="25">વલસાડ</option>
<option value="26">તાપી</option>
<option value="27">દેવભુમિ દ્વારકા</option>
<option value="28">મોરબી</option>
<option value="29">ગીર સોમનાથ</option>
<option value="30">બોટાદ</option>
<option value="31">અરવલ્લી</option>
<option value="32">મહિસાગર</option>
<option value="33">છોટાઉદેપુર</option>
我已经在我的机器上执行了代码,它在调试模式下运行良好。 我建议在获取下拉对象的行之前添加5-10秒的等待
**Application.Wait Now + TimeValue("00:00:05")**
Set drp = IE.document.getElementById("ddlDistrict")
For x = 0 To drp.Options.Length - 1
If drp.Options(x).Value = dname Then
它应该可以正常工作,但也取决于服务器延迟和您的互联网速度。使用css属性=值选择器并在变量中串联
ie.document.querySelector("[value='" + dname + "']").Selected = True
如果有多个下拉列表具有此值,并且假设给定的id是正确的,并且对于相应的下拉列表,您可能希望添加父id以隔离相应的下拉列表
ie.document.querySelector("#ddlDistrict [value='" + dname + "']").Selected = True
我使用advice now它在x=0到drp.Options.Length-1的行上显示对象所需的错误,那么我该怎么做plz帮助现在它在ie.document.queryselectorddldlDistrict[value='+dname+']行上显示对象所需的错误。Selected=True plz帮助之前是否有正确的页面加载等待?如果按F8键缓慢地执行代码,错误是否消失?是否按F8键执行代码?