我要自动执行此URL。我的输入为例:
输入框:
افزودن صندوق
和id="symbolSearch"
افزودن شاخص
和id="indexSearch"
symbolSearch
的一些值:
我搜索کیان
,然后点击آوای ثروت کیان-در سهام
我搜索خوارزمی
,然后点击مشترك خوارزمي-در سهام
indexSearch
的一些值:
我搜索شاخص کل
,然后点击شاخص کل
我搜索شاخص کل
,然后点击شاخص كل (هم وزن)
如何在VBA中自动执行此操作?
注意:“ symbolSearch”中的每个元素都与具有特定RegNo的共同基金相关联。 this link
中的URL搜索元素Sub MakeChart()
Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")
'Get the WebPage Content to HTMLFile Object
With appIE
.navigate "http://www.fipiran.ir/AnalysisTools/MFInteractiveChart"
.Visible = True
'wait until the page loads
Do While .Busy Or .readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Application.Wait (Now + TimeValue("00:00:05"))
For Each cell In Range("C:C")
If Not IsNumeric(cell) Or cell.Value = "" Or cell.EntireRow.Hidden Then GoTo Next_iteration
'''
**' codes to add RegNo in range C:C to webpage **
Next_iteration:
Next
.Quit
End With
Set appIE = Nothing
End Sub
答案 0 :(得分:2)
我不确定我是否已完全理解。我可以使用JSON parser从第一个链接解析regNos并将它们存储在数组中。然后,我可以将这些数字合并到XMLHTTP请求URL字符串中,该字符串返回JSON数据,该数据存储在另一个可以解析的数组中。
Option Explicit
Public Sub GetInfo()
Dim url As String, json As Object, item As Object, regNos(), responseInfo(), i As Long
url = "http://www.fipiran.ir/AnalysisTools/MFAutocomplete?term="
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
.send
Set json = JsonConverter.ParseJson(.responseText)
ReDim regNos(1 To json.Count)
ReDim responseInfo(1 To json.Count)
For Each item In json
i = i + 1
regNos(i) = item("RegNo")
Next
For i = LBound(regNos) To 2 'UBound(regNos)
.Open "GET", "http://www.fipiran.ir/AnalysisTools/MFHistory?regNo=" & CStr(regNos(i)), False
.send
responseInfo(i) = .responseText
'Application.Wait Now + TimeSerial(0, 0, 1) '< == to avoid being blocked
Next
End With
End Sub
responseInfo
数组中的示例信息:
将jsonconverter.bas
添加到项目后,我通过VBE>工具> Microsoft脚本运行时引用添加了引用。