【发布时间】:2017-02-02 21:56:41
【问题描述】:
我正在使用股票行情从 yahoo Finance 获取最新价格(这没问题)。但是,我很难在旁边的列中打印它们。有时我会有一个选项符号(AAPL161007 ...),它会返回“NA”,当这种情况发生时,我希望它什么也不打印。代码范围从第 6 行到第 25 行。程序一直卡在“使用活动工作表..”行 雅虎最后一笔交易的代码是“l1”。此外,AAPL 代码不会是该列中唯一的代码。谢谢。
代码如下:
Sub variables()
Dim qurl As String
Dim QuerySheet As Worksheet
Dim DataSheet As Worksheet
Dim rng As Range, cell As Range
Set rng = Range("K6:K25")
For Each cell In rng
ARL = "http://download.finance.yahoo.com/d/quotes.csv?s=" + "AAPL" + "&f=" + "l1"
With ActiveSheet.QueryTables.Add(Connection:="URL;" & ARL, Destination:=Worksheets(ActiveSheet.Name).Range(ActiveCell.Offset(0, 2)))
.Name = "qtActiveRange" & Rnd()
.RefreshStyle = xlOverwriteCells
.AdjustColumnWidth = False
.BackgroundQuery = False
.Refresh
End With
Next
End Sub
【问题讨论】:
-
ARL = "http://download.finance.yahoo.com/d/quotes.csv?s=" + "AAPL" + "&f=" + "l1"应该是ARL = "http://download.finance.yahoo.com/d/quotes.csv?s=" & cell.Value & "&f=l1"和Destination:=Worksheets(ActiveSheet.Name).Range(ActiveCell.Offset(0, 2))应该是Destination:=cell.Offset(0, 2),但我不确定如何抑制“N/A”,这是您的主要问题。
标签: vba excel loops for-loop yahoo-api