2016-09-25 59 views
0

我使用股票代碼從雅虎財務獲取最新價格(這是沒有問題的)。但是,我很難將它們打印在旁邊的列中。有時我會有一個選項符號(AAPL161007 ...),它會返回「NA」,當發生這種情況時,我希望它不打印任何東西。代碼範圍從第6行到第25行。該程序一直陷在「激活表」行中。 雅虎上次交易的代碼是「l1」。此外,AAPL代碼不會是唯一的代碼。該柱感謝VBA - 打印在下一列

下面是代碼:

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

+0

'ARL =「http://download.finance.yahoo.com/d /quotes.csv?s=「+」AAP L「+」&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」這是你的主要問題。 – YowE3K

回答

0

使用

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