vbs读取html td,[VBS脚本] Excel自动获取基金出错

[Visual Basic] 纯文本查看 复制代码Sub 获取涨幅()

Sheets(1).Range("S300").Formula = "=MATCH(" & """####""" & ",B:B,0)-1"

endRow = Sheets(1).Range("S300").Value

Sheets(1).Range("S300").ClearContents

For i = 2 To endRow

If Sheets(1).Range("B" & i).Text <> "" Then

Sheets(1).Range("F" & i) = "正在加载..."

Sheets(1).Range("H" & i) = "正在加载..."

Sheets(1).Range("K" & i) = "正在加载..."

Set HTML = CreateObject("htmlfile")

Set http = CreateObject("Msxml2.ServerXMLHTTP")

Value = Sheets(1).Range("B" & i).Text

HTML.designMode = "on"

http.Open "GET", "http://fund.eastmoney.com/" & Value & ".html", False

http.send

strHtml = http.responseText

If strHtml <> "" Then

HTML.write strHtml

Set trs = HTML.getElementById("gz_gszzl")

Set gz_gsz = HTML.getElementById("gz_gsz")

If Sheets(1).Range("A" & i).Value = "" Then

Title = HTML.getElementsByTagName("title")(0).innerText

Title = Left(Title, InStrRev(Title, "(") - 1)

Sheets(1).Range("A" & i) = Title

End If

If TypeName(trs) <> "Nothing" And TypeName(gz_gsz) <> "Nothing" Then

Sheets(1).Range("K" & i) = gz_gsz.innerText

' 累计收益 (含预估)

gsz = gz_gsz.innerText

If gsz = "--" Then

gsz = "0"

End If

Sheets(1).Range("H" & i) = (gsz - Sheets(1).Range("D" & i).Value) * Sheets(1).Range("C" & i).Value

' 今日估值

' Debug.Print (trs.innerText)

If trs.innerText = "0.00%" Then

Sheets(1).Range("F" & i) = "'" & trs.innerText

Else

Sheets(1).Range("F" & i) = trs.innerText

End If

Call 获取风险指标(Value, i)

Else

Sheets(1).Range("F" & i) = "不支持该基金"

Sheets(1).Range("H" & i) = "不支持该基金"

Sheets(1).Range("K" & i) = "不支持该基金"

End If

Else

Sheets(1).Range("F" & i) = "获取出错,请检查基金代码后重试"

Sheets(1).Range("H" & i) = "获取出错,请检查基金代码后重试"

Sheets(1).Range("K" & i) = "获取出错,请检查基金代码后重试"

End If

End If

Next

End Sub

Sub 获取风险指标(code, i)

Sheets(1).Range("J" & i) = "正在加载..."

Set HTML = CreateObject("htmlfile")

Set http = CreateObject("Msxml2.ServerXMLHTTP")

HTML.designMode = "on"

http.Open "GET", "http://fundf10.eastmoney.com/tsdata_" & code & ".html", False

http.send

strHtml = http.responseText

HTML.write strHtml

Set td = HTML.getElementsByTagName("table")(1).getElementsByTagName("tr")(2).getElementsByTagName("td")

y = Sheets(1).Range("J1").Value

y1 = CStr(td(1).innerText)

y2 = CStr(td(2).innerText)

y3 = CStr(td(3).innerText)

Sheets(1).Range("J" & i).Formula = "=IF(INDEX(J1,1)=" & """夏普比率(1年)""" & "," & Chr(34) & y1 & Chr(34) & ",IF(INDEX(J1,1)=" & """夏普比率(2年)""" & "," & Chr(34) & y2 & Chr(34) & "," & Chr(34) & y3 & Chr(34) & "))"

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值