【发布时间】:2015-12-30 18:11:08
【问题描述】:
我正在尝试将一个值转换为 NOK(例如 USD 到 NOK),但我无法加载整个 html 页面。
我正在使用找到的代码 here ,但我得到的 html 显示这个
"<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en-US">
<head>
<title>USDNOK=X: Summary for USD/NOK- Yahoo! Finance</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><met
所以它基本上是在剥离网页,或者更确切地说是不等到它完成加载。获取网页链接中的代码是这样的:
Function ExecuteWebRequest(ByVal url As String) As String
Dim oXHTTP As Object
If InStr(1, url, "?", 1) <> 0 Then
url = url & "&cb=" & Timer() * 100
Else
url = url & "?cb=" & Timer() * 100
End If
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "GET", url, False
oXHTTP.send
ExecuteWebRequest = oXHTTP.responseText
Set oXHTTP = Nothing
End Function
也许有更好的方法来获取今天的 vba 汇率。
【问题讨论】:
-
您看到的数据块约为 250 字节,这表明某处可能存在 255/256 字节的限制。 VBA 对我来说看起来不错,所以我想知道您是如何显示数据的,以及您是否正在使用会截断它的 EXCEL 电子表格函数,以及您是否这样做是因为您在 mid() 之一中遇到错误调用 - 代码在这里工作,除了您链接到的网页上发布的版本不正确。电子表格中的版本使用 instr 查找 HTML (td) 结束标记,但网页版本正在查找 ""
-
顺便说一句,AFAICS 虽然代码看起来确实有效,但我认为它可能应该在 HTML 文档中查找特定节点并获取其值,而不是使用 instr 和 mid 来做同样的事情.但我不会尝试修复它!