用Excel实时看股票数据--vba(无需安装任何软件)

news/2024/10/21 17:18:38/

环境:Win7+Excel2016(测试win10、wps也适用)

采用的是腾讯提供的股票接口,例如:http://qt.gtimg.cn/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";


提取其中的名称(民生银行),收盘价格,昨日价格,涨跌百分比即可。

(1)打开Excel2016,保证第一列输入股票代码(第一行除外),2、3、4、5列留着待用,其余列根据需求自行添加,如下图:

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

Function FillOneRow(url As String, r As Integer) As IntegerWith CreateObject("msxml2.xmlhttp").Open "GET", url, False.sendsp = Split(.responsetext, "~")If UBound(sp) > 3 ThenFillOneRow = 1Cells(r, 2).Value = sp(1) '名称Cells(r, 3).Value = sp(3) '当前价格Cells(r, 4).Value = sp(4) '昨日收盘价Dim zhangDie As DoublezhangDie = sp(32)Cells(r, 5).Value = zhangDieIf zhangDie > 0 Then'上涨使用红色Cells(r, 5).Font.Color = vbRedCells(r, 3).Font.Color = vbRedElse'下跌使用绿色Cells(r, 5).Font.Color = &H228B22Cells(r, 3).Font.Color = &H228B22End IfElseFillOneRow = 0End IfEnd With
End FunctionSub GetData()Dim succeeded As IntegerDim url As StringDim row As IntegerDim code As StringFor row = 2 To Range("A1").CurrentRegion.Rows.Count '从第二行开始code = Cells(row, 1).ValueIf code <> "" Thenurl = "http://qt.gtimg.cn/q=sh" & code '沪市succeeded = FillOneRow(url, row)If succeeded = 0 Thenurl = "http://qt.gtimg.cn/q=sz" & code '深市succeeded = FillOneRow(url, row)End IfIf succeeded = 0 ThenMsgBox ("获取失败")End IfEnd IfNext
End Sub


(3)选择ThisWorkbook选项,添加Workbook的Open函数,这样在excel打开的时候就会自动执行GetData

Private Sub Workbook_Open()Call Sheet1.GetData
End Sub

(4)关闭VBA,在Excel菜单->视图->宏->查看宏(VB宏),弹出宏对话框:


 

点击执行(或运行),就能看到数据被填充了:

(5)点击选项,可以设置快捷命令,例如Ctrl+R,用快捷键刷新看实时数据。

(6)Excel保存为可以运行宏的文件,如stock.xlsm。

(7)补充:网友回复无法区分sz和sh,这里把GetData函数修改了一下,让第一列可以输入纯数字或者带字母的输入,比如sz000001。

Sub GetData()Dim succeeded As IntegerDim url As StringDim row As IntegerDim code As StringDim dateStr As StringDim cash As StringDim current As StringDim firstCode As StringDim secondCode As Stringcurrent = DateDim currentRow As IntegercurrentRow = 0Dim zhangDie As DoubleDim isSet As BooleanFor row = 2 To Range("A1").CurrentRegion.Rows.Countcode = Cells(row, 1).Valuesucceeded = 0If code <> "" ThenfirstCode = LCase(Mid(code, 1, 1))secondCode = LCase(Mid(code, 2, 1))If firstCode = "s" And secondCode = "h" Thenurl = "http://qt.gtimg.cn/q=" & Cells(row, 1).Valuesucceeded = FillOneRow(url, row)ElseIf firstCode = "s" And secondCode = "z" Thenurl = "http://qt.gtimg.cn/q=" & Cells(row, 1).Valuesucceeded = FillOneRow(url, row)ElseIf firstCode <> "0" Thenurl = "http://qt.gtimg.cn/q=sh" & Cells(row, 1).Valuesucceeded = FillOneRow(url, row)End IfIf succeeded = 0 Thenurl = "http://qt.gtimg.cn/q=sz" & Cells(row, 1).Valuesucceeded = FillOneRow(url, row)End IfEnd IfIf succeeded = 0 ThenMsgBox ("获取失败")End IfEnd IfNext
End Sub


http://www.ppmy.cn/news/567235.html

相关文章

EasyExcel实现下载Excel(解决无法从浏览器下载问题)

请求成功&#xff0c;响应二进制数据&#xff0c;但是页面不下载 页面放了一个下载按钮&#xff0c;点击下载后&#xff0c;可以正常请求下载的接口&#xff0c;而且也成功响应&#xff0c;但是文件不会从浏览器页面下载下来。 <div><button onclick"down()"…

使用xlwings操作excel大全--最新

xlwings 操作excel def open(filenameNone,visibleFalse, readonlyFalse, passwordNone,write_passwordNone): #filename 文件路径&#xff0c;打开,没有文件名则创建 #visible 打开是否可见 #readonly 是否打开只读 #password 文件读取密码 #write_password 设置文件密码 该方…

easyexcel 2.2.6 新版本以列表的形式读取 Excel

使用步骤&#xff1a; 注&#xff1a;讲述使用 EasyExcel 的读取 Excel 数据列表的案例&#xff0c;项目基于 springboot maven 模式。 1、引入 EasyExcel 依赖包&#xff0c;文章以 easyexcel 2.2.6 为基础。 <dependency><groupId>com.alibaba</groupId>&…

Spire.XLS:一款Excel处理神器

正文 前言&#xff1a;最近项目里面有一些对Excel操作的需求&#xff0c;博主想都没想&#xff0c;NPOI呗&#xff0c;简单、开源、免费&#xff0c;大家都喜欢&#xff01;确实&#xff0c;对于一些简单的Excel导入、导出、合并单元格等&#xff0c;它都没啥太大的问题&#…

报表控件Stimulsoft v2023.1全新发布 | 附免费下载试用

Stimulsoft Ultimate 宣布发布新版本2023.1&#xff01;在最新版本中添加了对Razor Pages的支持、新的数据监视器可视化工具、为PHP和Blazor平台更新了组件,欢迎下载试用&#xff01; Stimulsoft Ultimate官方正版下载 Razor Pages 在 2023.1.1 版中&#xff0c;我们添加了对…

编辑 用Excel制作股票交易表格/日志,带macro宏程序(vba)更新V1.5

写在前面 交易股票最好要记录每一笔交易&#xff0c;交易记录能帮助我们回忆和分析交易中的成功失败&#xff0c;以获得交易技能的提升&#xff0c;甚至可以使我们头脑更加清晰&#xff0c;不至于做出错误判断和冲动交易。 于是本着每一笔交易都详细记录的投资者&#xff0c;…

Excel神器之xlwings的安装

使用强大的xlwings插件可以大大提高你的Excel使用效率。 但是在安装过程中会遇到各种各样的踩坑问题&#xff0c;下面是xlwings的安装过程 第一步 确定你的python版本 例如我这里是python3.9.1&#xff0c;我们可以通过 windowR 输入 cmd 通过命令查看 python --version 第二…

(一)python实战——使用Pyinstaller打包一个python的exe可执行文件

前言 在python编程中&#xff0c;我们往往需要将我们的应用程序打包成一个可执行文件&#xff0c;方便使用。如果是单独的python文件&#xff0c;其他人使用前必须要先安装python环境&#xff0c;在python环境中通过命令执行我们的python程序。本节内容我们主要介绍一下使用Py…