【excel】VBA股票数据获取(搜狐股票)

文章目录

  • 一、序
  • 二、excel 自动刷新股票数据
  • 三、付费获取

一、序

我其实不会 excel 的函数和 visual basic。因为都可以用matlab和python完成。

今天用了下VBA,还挺不错的。分享下。

上传写了个matlab获取股票数据的,是雅虎财经的。这次是搜狐股票的数据。


搜狐股票:https://q.stock.sohu.com/

其实都大同小异,就是发送一个http请求,然后解析获取的数据即可。


随便找个股票:
在这里插入图片描述

点击左侧栏的“历史行情”:这里就是我们要下载的数据,我前面文章使用matlab、python都可以爬取的。

在这里插入图片描述

二、excel 自动刷新股票数据

无法就是拿VBA 发送个http请求,然后把返回的数据保存到excel相应的位置。

随便拿个api post测试一下api,返回数据如下:

			0	"2024-12-31", 日期1	"3.00", 开盘2	"2.90", 收盘3	"-0.13",涨跌额4	"-4.29%",涨跌幅5	"2.88", 最低6	"3.04", 最高7	"1179628", 总手8	"34640.35",成交金额9	"4.39%" 换手率

office 版本:Microsoft 365

excel 中:

  • 点击 文件 -> 选项。
  • 在左侧选择 自定义功能区,然后勾选 开发工具 选项,点击 确定。

在这里插入图片描述

插入一个按钮:按下即可执行VBA代码,刷新数据
在这里插入图片描述

要修改这个按钮的文字大小之类的,右键然后编辑文字、或者设置控件格式即可。

点一下其它地方,即可取消编辑状态,这时候鼠标左键点下即代表按下按钮。
在这里插入图片描述

自己弄一下表格样式: 把下面需要填入数据的区域的单元格格式设置为“文本”。

在这里插入图片描述

开发工具:Visual Basic 编写VBA代码
在这里插入图片描述


源码:

' 获取数据的主程序
Sub get_data()' 清空工作表中的数据clear_cells' 加载页面数据load_page1' 选择 A1 单元格Range("A1").Select
End Sub' 加载页面数据
Public Sub load_page1()Dim url As String, sSp() As String, aaa As String, line As String, sArray() As String' 获取工作表1中的日期范围cd = Sheets(1).[c1]   ' 获取开始日期sd = Sheets(1).[e1]   ' 获取结束日期ed = Sheets(1).[g1]   ' 获取股票代码' 构造 URL 地址,连接股票数据请求的 APIurl = "https://q.stock.sohu.com/hisHq?code=cn_" & cd & "&start=" & sd & "&end=" & ed' 创建一个 HTTP 请求对象,用于发送请求并获取响应数据With CreateObject("msxml2.xmlhttp").Open "post", url, False  ' 发送 POST 请求.send  ' 发送请求' 获取响应文本并去除回车符aaa = Replace(.responsetext, Chr(13), "")' 查找响应中是否包含"Not Found"字符串,若有则提示数据源无法访问Dim inte As Integerinte = InStr(aaa, "Not Found")If inte <> 0 ThenMsgBox ("数据源无法访问!")  ' 弹出提示框Debug.Print "数据源无法访问!退出"Exit Sub  ' 如果数据源不可访问,退出程序End If' 'Debug.Print "响应数据:" & aaa  ' 可以用来打印调试信息,取消注释来查看响应数据' 将响应数据按 '],[' 分割,分割成单个记录sSp = Split(aaa, "],[")' 如果有超过一个数据项,开始处理每一行的数据If UBound(sSp) > 1 ThenFor i = 0 To UBound(sSp) - 1line = sSp(i)  ' 取得一行数据' 'Debug.Print "  行:" & line  ' 调试信息,打印每一行数据' 如果是第一行数据,去掉多余的部分If i = 0 Thenline = Mid(line, 22, Len(line))End If' 移除双引号line = Replace(line, Chr(34), "")' 'Debug.Print "  行2:" & line  ' 打印去除双引号后的数据行' 将行数据按逗号分割sArray = Split(line, ",")' 'Debug.Print "   单元格:" & sArray(0)  ' 打印每一项数据的值' 将分割后的数据填充到工作表中,从第3行开始Worksheets("sheet1").Cells((i + 3), 1) = sArray(0)Worksheets("sheet1").Cells((i + 3), 2) = sArray(1)Worksheets("sheet1").Cells((i + 3), 3) = sArray(2)Worksheets("sheet1").Cells((i + 3), 4) = sArray(4)Worksheets("sheet1").Cells((i + 3), 5) = sArray(5)Worksheets("sheet1").Cells((i + 3), 6) = sArray(6)Worksheets("sheet1").Cells((i + 3), 7) = sArray(7)Worksheets("sheet1").Cells((i + 3), 8) = sArray(8)Worksheets("sheet1").Cells((i + 3), 9) = sArray(9)Next iEnd IfEnd With
End Sub' 清空指定范围的单元格内容
Public Sub clear_cells()Range("A3").Select  ' 选择 A3 单元格ActiveWindow.SmallScroll Down:=45  ' 滚动页面,确保可见范围内有 A4Range("A3:I477").Select  ' 选择 A3 到 I477 范围Selection.ClearContents  ' 清空所选范围的内容Range("A1").Select  ' 选择 A1 单元格
End Sub

运行效果:
在这里插入图片描述

三、付费获取

我还写了升级版,可以获取多个股票数据。

不愿意自己写的就付款哈哈:链接

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2473.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 高德地图API(新版)

新版高德地图 前言正文一、创建应用① 获取PackageName② 获取调试版安全码SHA1③ 获取发布版安全码SHA1 二、配置项目① 导入SDK② 配置AndroidManifest.xml 三、获取当前定位信息① ViewBinding使用和导包② 隐私合规设置③ 权限请求④ 初始化定位⑤ 获取定位信息 四、显示地…

springCloudGateway+nacos自定义负载均衡-通过IP隔离开发环境

先说一下想法&#xff0c;小公司开发项目&#xff0c;参考若依框架使用的spring-cloud-starter-gateway和spring-cloud-starter-alibaba-nacos, 用到了nacos的配置中心和注册中心&#xff0c;有多个模块&#xff08;每个模块都是一个服务&#xff09;。 想本地开发&#xff0c;…

【NLP】语言模型的发展历程 (1)

语言模型的发展历程系列博客主要包含以下文章&#xff1a; 【NLP】语言模型的发展历程 (1)【NLP】大语言模型的发展历程 (2) 本篇博客是该系列的第一篇&#xff0c;主要讲讲 语言模型&#xff08;LM&#xff0c;Language Model&#xff09; 的发展历程。 文章目录 一、统计语…

【Compose multiplatform教程】05 IOS环境编译

了解如何使现有的 Android 应用程序跨平台&#xff0c;以便它在 Android 和 iOS 上都能运行。您将能够在一个位置编写代码并针对 Android 和 iOS 进行测试一次。 本教程使用一个示例 Android 应用程序&#xff0c;其中包含用于输入用户名和密码的单个屏幕。凭证经过验证并保存…

Redis哨兵(Sentinel)

Redis哨兵 ‌[Redis哨兵]&#xff08;Sentinel&#xff09;是Redis的一个高可用性解决方案&#xff0c;主要用于监控和管理多个Redis服务器&#xff0c;确保Redis系统的高可用性‌。哨兵通过实时监测主节点和从节点的状态&#xff0c;及时发现并自动处理故障&#xff0c;保证系…

WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS

XSS跨站脚本攻击技术&#xff08;一&#xff09; XSS的定义 XSS攻击&#xff0c;全称为跨站脚本攻击&#xff0c;是指攻击者通过在网页中插入恶意脚本代码&#xff0c;当用户浏览该网页时&#xff0c;恶意脚本会被执行&#xff0c;从而达到攻击目的的一种安全漏洞。这些恶意脚…

【C++】B2112 石头剪子布

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述游戏规则&#xff1a;输入格式&#xff1a;输出格式&#xff1a;输入输出样例&#xff1a;解题分析与实现 &#x1f4af;我的做法实现逻辑优点与不足 &#x1f4af…

2025 年前端开发学习路线图完整指南

如果您想成为前端开发人员&#xff0c;本指南适合您。无论您是从零开始还是已经了解基础知识&#xff0c;它都会帮助您专注于真正重要的事情并学习让您脱颖而出的技能。 刚开始的时候&#xff0c;我浪费了几个月的时间在不相关的教程上&#xff0c;因为我不知道从哪里开始&…

【蓝牙】win11 笔记本电脑连接 hc-06

文章目录 前言步骤 前言 使用电脑通过蓝牙添加串口 步骤 设置 -> 蓝牙和其他设备 点击 显示更多设备 更多蓝牙设置 COM 端口 -> 添加 有可能出现卡顿&#xff0c;等待一会 传出 -> 浏览 点击添加 hc-06&#xff0c;如果没有则点击 再次搜索 确定 添加成…

Docker--Docker Compose(容器编排)

什么是 Docker Compose Docker Compose是Docker官方的开源项目&#xff0c;是一个用于定义和运行多容器Docker应用程序的工具。 服务&#xff08;Service&#xff09;&#xff1a;在Docker Compose中&#xff0c;一个服务实际上可以包括若干运行相同镜像的容器实例&#xff0…

【Linux】11.Linux基础开发工具使用(4)

文章目录 3. Linux调试器-gdb使用3.1 背景3.2 下载安装3.3 使用gdb查询3.4 开始使用 3. Linux调试器-gdb使用 3.1 背景 程序的发布方式有两种&#xff0c;debug模式和release模式 Linux gcc/g出来的二进制程序&#xff0c;默认是release模式 要使用gdb调试&#xff0c;必须…

【Linux 36】多路转接 - epoll

文章目录 &#x1f308; 一、epoll 初步认识&#x1f308; 二、epoll 相关接口⭐ 1. 创建 epoll -- epoll_create⭐ 2. 控制 epoll -- epoll_ctr⭐ 3. 等待 epoll -- epoll_wait &#x1f308; 三、epoll 工作原理⭐ 1. 红黑树和就绪队列⭐ 2. 回调机制⭐ 3. epoll 的使用过程 …

微信小程序订阅消息提醒-云函数

微信小程序消息订阅分2种&#xff1a; 1.一次性订阅&#xff1a;用户订阅一次就可以推送一次&#xff0c;如果需要多次提醒需要多次订阅。 2.长期订阅&#xff1a;只有公共服务领域&#xff0c;如政务、医疗、交通、金融和教育等。‌在用户订阅后&#xff0c;在很长一段时间内…

使用 Charles 调试 Flutter 应用中的 Dio 网络请求

为了成功使用 Charles 抓取并调试 Flutter 应用程序通过 Dio 发起的网络请求&#xff0c;需遵循特定配置步骤来确保应用程序能够识别 Charles 的 SSL 证书&#xff0c;并正确设置代理服务器。 配置 Charles 以支持 HTTPS 请求捕获 Charles 默认会拦截 HTTP 流量&#xff1b;…

《HTML在网络安全中的多面应用:从防范攻击到安全审查》

Html基础 Html简介 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是用于描述网页内容和结构的标准语言。以下是对HTML的简要介绍&#xff1a; 基本概念 定义&#xff1a; HTML不是一种编程语言&#xff0c;而是一种标记语言。 它使用标…

算法每日双题精讲 —— 二分查找(二分查找,在排序数组中查找元素的第一个和最后一个位置)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa…

《C++11》深入剖析正则表达式库:解锁文本处理的高效之道

在现代编程领域&#xff0c;文本处理是一项不可或缺的任务&#xff0c;而正则表达式无疑是这一领域的强大利器。C11标准库的引入&#xff0c;为C开发者带来了正则表达式库&#xff0c;极大地丰富了C在文本处理方面的能力。本文将全方位、多角度地深入探讨C11正则表达式库&#…

Cosmos:英伟达发布世界基础模型,为机器人及自动驾驶开发加速!

1. 简介 在2025年消费电子展&#xff08;CES&#xff09;上&#xff0c;NVIDIA发布了全新的Cosmos平台&#xff0c;旨在加速物理人工智能&#xff08;AI&#xff09;系统的开发&#xff0c;尤其是自主驾驶车辆和机器人。该平台集成了生成式世界基础模型&#xff08;WFM&#x…

Hive集群的安装准备

Hive的安装与集群部署详细指南 一、环境与软件准备 在开始Hive的安装与集群部署之前&#xff0c;确保您准备好以下环境和软件&#xff1a; 虚拟机软件&#xff1a; VMware Workstation 17.5&#xff1a;用于创建和管理虚拟机&#xff0c;确保可以在其上安装Linux操作系统。 …

SpringBoot集成Mongodb

SpringBoot集成Mongodb 本文简要介绍SpringBoot集成mongodb&#xff0c;并实现增删改查 1. 引入依赖 spring-boot-starter-data-mongodb 提供了mongoTemplate供底层操作及mongodb驱动等 <dependency><groupId>org.springframework.boot</groupId><arti…