【发布时间】:2016-12-27 11:11:03
【问题描述】:
我修改了一段现有代码,以便从 reuters.com 检索法国股票的 Beta 值。当我在电子表格中使用该功能时(例如 =getbeta(A3) 和单元格 A3 中的 EDF.PA),该功能似乎正在工作。
'Beta Function. Posted by mybeam on http://www.mrexcel.com/forum/excel-questions/780746-excel-how-pull-beta-stock-yahoo-finance.html
Function GetBeta(ByVal trange As Range) As Single
Dim xHttp As Object
Dim t, Ticker As String
Set xHttp = CreateObject("Microsoft.XMLHTTP")
Ticker = trange.Text
xHttp.Open "GET", "http://www.reuters.com/finance/stocks/overview?symbol=" & Ticker, False
xHttp.Send
t = xHttp.responseText
t = Mid(t, InStr(t, ">Beta:<") + 1)
t = Mid(t, InStr(t, ">") + 1)
t = Mid(t, InStr(t, ">") + 1)
t = Mid(t, InStr(t, ">") + 1)
GetBeta = Val(Left(t, InStr(t, "<") - 1))
End Function
但是,我现在想将该函数用作 sub 的一部分。不幸的是,下面的代码不起作用。看来我对变量/对象有问题。
Private Sub CommandButton4_Click()
Dim Beta As Double
Dim Ticker_A As Range
Select Case Userform1.ComboBox_D.Value
Case "ACCOR"
Ticker_A = "AC.PA"
Case "ELECTRICITE DE FRANCE"
Ticker_A = "EDF.PA"
Beta = GetBeta(Range(Ticker_A))
MsgBox Beta
End Sub
【问题讨论】:
-
您收到的错误是什么?
-
嘿,队长,谢谢你看这个。我收到运行时错误 91 对象变量或未设置块变量
-
您的代码放在哪里?
Userform1是在你执行你的子程序时初始化的吗? -
该函数被放置在一个模块中。 CommandButton4 是 userform1 的一部分,单击按钮时将启动整个 sub。因此,我认为 userform1 已初始化。