爲了好玩,我正在改寫excel股票portflio的風格。迄今爲止,我能夠從雅虎獲取數據,並把它變成這種形式:MsgBox Http.ResponseText糾正解釋CSV數據時的錯誤
Dim URL As String: URL = "http://finance.yahoo.com/d/quotes.csv?s=" & Symbols & "&f=snpohgkj"
Dim Http As New WinHttpRequest
Http.Open "GET", URL, False
Http.Send
我試圖設定,讓這個數據(上圖)被自動放入每個行。第一欄由用戶填寫,無論他/她持有什麼,而價格應該在按下按鈕時更新。
目前,每當我刷新(此鏈接到一個ActiveX命令按鈕),實際嘗試輸入數據的Excel文件,我得到這個:FilledExcelExample
這部分的代碼是:
Dim Resp As String: Resp = Http.ResponseText
Dim Lines As Variant: Lines = Split(Resp, vbNewLine)
Dim sLine As String
Dim Values As Variant
For i = 0 To UBound(Lines)
sLine = Lines(i)
If InStr(sLine, ",") > 0 Then
Values = Split(sLine, ",")
W.Cells(i + 2, 2).Value = Split(Split(sLine, Chr(34) & "," & Chr(34))(1), Chr(34))(0)
W.Cells(i + 2, 3).Value = Values(UBound(Values) - 5)
W.Cells(i + 2, 4).Value = Values(UBound(Values) - 4)
W.Cells(i + 2, 5).Value = Values(UBound(Values) - 3)
W.Cells(i + 2, 6).Value = Values(UBound(Values) - 2)
W.Cells(i + 2, 7).Value = Values(UBound(Values) - 1)
W.Cells(i + 2, 8).Value = Values(UBound(Values))
End If
Next i
W.Cells.Columns.AutoFit
目前看起來好像它採用了第一家公司的專有名稱,但沒有采取適當的價格(看起來像最後一家公司的價格)。我一直盯着這太久才發現錯誤。任何人都可以幫助把正確的數據放在正確的列中嗎?