VBA - 在下一栏中打印

时间:2016-09-25 14:20:59

标签: vba excel-vba loops for-loop yahoo-api

我正在使用股票代码从雅虎财务中获取最后一个价格(这没有问题)。但是,我在旁边的列中打印时遇到了困难。有时我会有一个选项符号(AAPL161007 ...),它将返回" NA",当发生这种情况时,我希望它只是打印一下。代码范围从第6行到第25行。程序一直卡在第34行;使用活动表... 雅虎最后一笔交易的代码是" 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

enter image description here

1 个答案:

答案 0 :(得分:0)

使用

With ActiveSheet.QueryTables.add(Connection:="URL;" & ARL, Destination:=ActiveCell.Offset(0, 2))