【问题标题】:VBA - Printing in the next columnVBA - 在下一列中打印
【发布时间】: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


【解决方案1】:

使用

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

【讨论】:

    猜你喜欢
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    相关资源
    最近更新 更多