小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Excel使用VBA讀取實(shí)時(shí)WebService股票數(shù)據(jù)

 TTTB018 2018-09-15

環(huán)境:Win7 Excel2016


采用的是騰訊提供的股票接口,例如:http://qt./q=sh600016,返回輸入如下:

v_sh600016='1~民生銀行~600016~8.58~8.68~8.67~886218~499700~386518~8.58~772~8.57~6361~8.56~8593~8.55~12720~8.54~6803~8.59~4279~8.60~9390~8.61~2093~8.62~3318~8.63~3836~15:00:04/8.58/1/S/858/27675|15:00:01/8.58/817/B/701197/27670|14:59:58/8.58/306/B/262275/27663|14:59:55/8.58/261/B/223686/27659|14:59:52/8.57/37/S/31709/27655|14:59:49/8.58/134/B/114869/27649~20170803150552~-0.10~-1.15~8.74~8.56~8.58/885400/764678837~886218~76538~0.30~6.48~~8.74~8.56~2.07~2535.54~3130.45~0.90~9.55~7.81~0.84';

提取其中的名稱(民生銀行),收盤價(jià)格,昨日價(jià)格,漲跌百分比即可。


(1)打開Excel2016,保證第一列輸入股票代碼(第一行除外),2、3、4、5列留著待用,其余列根據(jù)需求自行添加,如下圖:


(2)按ALT F11,在Sheet1的VBA通用代碼中加入如下代碼:

  1. Function FillOneRow(url As String, r As Integer) As Integer
  2. With CreateObject('msxml2.xmlhttp')
  3. .Open 'GET', url, False
  4. .send
  5. sp = Split(.responsetext, '~')
  6. If UBound(sp) > 3 Then
  7. FillOneRow = 1
  8. Cells(r, 2).Value = sp(1) '名稱
  9. Cells(r, 3).Value = sp(3) '當(dāng)前價(jià)格
  10. Cells(r, 4).Value = sp(4) '昨日收盤價(jià)
  11. Dim zhangDie As Double
  12. zhangDie = sp(32)
  13. Cells(r, 5).Value = zhangDie
  14. If zhangDie > 0 Then
  15. '上漲使用紅色
  16. Cells(r, 5).Font.Color = vbRed
  17. Cells(r, 3).Font.Color = vbRed
  18. Else
  19. '下跌使用綠色
  20. Cells(r, 5).Font.Color = &H228B22
  21. Cells(r, 3).Font.Color = &H228B22
  22. End If
  23. Else
  24. FillOneRow = 0
  25. End If
  26. End With
  27. End Function
  28. Sub GetData()
  29. Dim succeeded As Integer
  30. Dim url As String
  31. Dim row As Integer
  32. Dim code As String
  33. For row = 2 To Range('A1').CurrentRegion.Rows.Count '從第二行開始
  34. code = Cells(row, 1).Value
  35. If code <> '' Then
  36. url = 'http://qt./q=sh' & code '滬市
  37. succeeded = FillOneRow(url, row)
  38. If succeeded = 0 Then
  39. url = 'http://qt./q=sz' & code '深市
  40. succeeded = FillOneRow(url, row)
  41. End If
  42. If succeeded = 0 Then
  43. MsgBox ('獲取失敗')
  44. End If
  45. End If
  46. Next
  47. End Sub

(3)選擇ThisWorkbook選項(xiàng),添加Workbook的Open函數(shù),這樣在excel打開的時(shí)候就會自動執(zhí)行GetData

  1. Private Sub Workbook_Open()
  2. Call Sheet1.GetData
  3. End Sub


(4)關(guān)閉VBA,在Excel菜單->視圖->宏->查看宏,彈出宏對話框:



點(diǎn)擊執(zhí)行,就能看到數(shù)據(jù)被填充了:


(5)點(diǎn)擊選項(xiàng),可以設(shè)置快捷命令,例如Ctrl R。

(6)Excel保存為可以運(yùn)行宏的文件,如stock.xlsm


    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多