Ajuda por favor, estou usando o código abaixo. Eu só preciso que os dados entrem na coluna N, ao usar o loop for, ele atravessa todas as colunas. Como posso consertar isso?
Dim W As Worksheet: Set W = ActiveSheet
Last = W.Range("A1500").End(xlUp).Row
If Last = 7 Then Exit Sub
Dim Symbols As String
Dim i As Integer
Dim j As Integer
' Code below Loops on the stock tickers and concatenate them
For i = 8 To Last Step 200
Symbols = "" 'value to reset the string during loop
For j = i To i + 199
Symbols = Symbols & W.Cells(j, 1) & "+"
Next j
Symbols = Left(Symbols, Len(Symbols) - 1)
'Debug.Print Symbols ' delete this later
Dim URL As String: URL = "http://finance.yahoo.com/d/quotes.csv?s=" & Symbols & "&f=snl1p2kjr5rp6s7m3m8"
With ActiveSheet.QueryTables.Add(Connection:="URL;" & URL, Destination:=W.Range("$N$" & i))
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.FillAdjacentFormulas = False
.SaveData = True
End With
Next i
microsoft-excel
vba
farai
fonte
fonte
I only need the data to go into column N, when using the for loop, it goes across all the rows
... o que isso significa? Se você quer que tudo vá para N, quer dizer que você quer tudo no N1. Caso contrário, ele deve ir para linhas diferentes em NRespostas:
O problema parece ser causado pelo fato de que a adição de um novo
QueryTable
empurra asQueryTable
colunas adicionadas anteriormente uma para a direita.Isso pode ser desfeito adicionando o código a seguir imediatamente após a
End With
instrução Para cada novoQueryTable
após o primeiro, isso excluirá a única coluna de células à esquerda das anteriormente adicionadasQueryTable
, realinhando-as horizontalmente.fonte