Excel实时股票行情更新了吗?
摘要:
使用 Excel 内置的「获取数据」功能(推荐,最简单)这是 Excel 2016 及以上版本(包括 Microsoft 365)自带的功能,无需安装任何插件,直接通过连接网页数据... 使用 Excel 内置的「获取数据」功能(推荐,最简单)
这是 Excel 2025 及以上版本(包括 Microsoft 365)自带的功能,无需安装任何插件,直接通过连接网页数据源即可实现。
优点:
- 免费,内置功能。
- 操作相对简单,无需编程。
- 可以设置自动刷新。
缺点:
- 依赖网页数据源,如果网站结构改变,连接会失效。
- 部分财经网站会屏蔽此功能,无法获取数据。
- 获取的数据字段可能有限,且格式可能需要手动调整。
操作步骤(以新浪财经为例):
-
打开 Excel,点击菜单栏的 「数据」 -> 「获取数据」 -> 「从其他来源」 -> 「从网页」。
-
输入网址:在弹出的窗口中,输入新浪财经 A 股列表的网址,
https://finance.sina.com.cn/realstock/company/sh600000/nc.shtml(这是单个股票的页面,但我们可以用列表页),更通用的列表页是:https://finance.sina.com.cn/realstock/,但直接解析列表页比较复杂,我们可以找一个提供股票代码和名称的列表页,https://hq.gucheng.com/(股票网的沪深 A 股列表)。这里我们以
https://hq.gucheng.com/为例,这个页面结构相对稳定。 -
连接和加载:点击 「确定」,Excel 会尝试连接并解析网页数据,解析完成后,会弹出一个 「导航器」 窗口,左侧是网页中可用的表格列表,你需要点击预览,找到包含股票代码、名称、最新价等信息的那个表格,然后点击右下角的 「加载」。
-
导入数据:数据会加载到 Excel 的新工作表中,你可以在 「数据」 选项卡中看到 「刷新」 按钮,点击它,可以手动或设置定时刷新数据。
-
(进阶)获取单只股票的实时行情:
- 如果你想获取特定几只股票的行情,可以先在一个工作表中列出股票代码(如
600519)。 - 使用
=WEBSERVICE()和=FILTERXML()函数组合来动态获取。 - 公式示例:假设 A2 单元格是股票代码
600519,在 B2 单元格输入以下公式,可以获取该股票的最新价格:=FILTERXML(WEBSERVICE("https://hq.gucheng.com/s/"&A2&".html"), "//span[@class='price']/text()")WEBSERVICE: 获取网页源代码。FILTERXML: 使用 XPath 从源代码中提取指定元素的内容。
- 注意:此方法对网站结构依赖极高,一旦网站改版,公式就会失效,且新浪等大网站对此类抓取有限制,成功率不高。
- 如果你想获取特定几只股票的行情,可以先在一个工作表中列出股票代码(如
使用 VBA 宏 + 网页抓取(功能强大,需编程)
通过编写 VBA (Visual Basic for Applications) 代码,可以更灵活地抓取网页数据并填充到 Excel 中,这种方法比方法一更稳定,可以自定义逻辑。
优点:
- 高度自定义,可以抓取任意字段。
- 可以实现复杂的自动化操作(如定时刷新、数据计算等)。
- 相对稳定,代码可以适应网页的小幅变动。
缺点:
- 需要一定的 VBA 编程基础。
- 操作步骤较多,需要开启宏。
- 同样依赖网页源码。
操作步骤:
-
开启「开发工具」选项卡:
- 点击 「文件」 -> 「选项」 -> 「自定义功能区」。
- 在右侧勾选 「开发工具」,然后点击 「确定」。
-
插入 VBA 模块:
- 点击 「开发工具」 -> 「Visual Basic」。
- 在打开的 VBA 编辑器中,点击 「插入」 -> 「模块」。
-
编写代码:将以下代码复制到模块中,这段代码会访问新浪财经,获取指定股票的行情数据。
Sub GetStockData() ' 定义变量 Dim ie As Object Dim doc As Object Dim stockCode As String Dim stockPrice As String Dim stockName As String Dim targetRow As Long ' 设置要查询的股票代码 stockCode = "600519" ' 贵州茅台 ' 创建 IE 浏览器对象 Set ie = CreateObject("InternetExplorer.Application") ie.Visible = False ' 不显示浏览器窗口 ' 访问新浪财经的股票页面 ie.Navigate "https://finance.sina.com.cn/realstock/company/sh" & stockCode & "/nc.shtml" ' 等待页面加载完成 Do While ie.Busy Or ie.ReadyState <> 4 DoEvents Loop Set doc = ie.document ' 使用 XPath 获取数据 (需要根据网页实际结构调整) On Error Resume Next ' 防止找不到元素导致程序崩溃 stockName = doc.getElementById("stockName").innerText stockPrice = doc.getElementById("price").innerText On Error GoTo 0 ' 将数据写入 Excel targetRow = 1 ' 写入第一行 Sheets("Sheet1").Cells(targetRow, 1).Value = stockName Sheets("Sheet1").Cells(targetRow, 2).Value = stockCode Sheets("Sheet1").Cells(targetRow, 3).Value = stockPrice ' 关闭 IE 浏览器 ie.Quit Set ie = Nothing MsgBox "数据获取成功!" End Sub -
运行宏:
- 关闭 VBA 编辑器,回到 Excel。
- 按
Alt + F8,选择GetStockData,然后点击 「执行」。
重要提示:网页的 HTML 结构会经常变化,代码中的 getElementById("price") 这些定位符可能会失效,你需要使用浏览器的“开发者工具”(F12)来检查目标网页,找到正确的元素 ID 或 XPath。
使用专业的财经数据插件(最稳定、功能最全)
对于有更高要求的用户,使用第三方插件是最佳选择,这些插件通过付费的 API 接口获取数据,稳定性和数据质量都最高。
优点:
- 数据稳定:不依赖公开网页,接口稳定。
- 数据全面:提供实时行情、财务数据、技术指标、新闻等海量数据。
- 功能强大:支持公式引用、自动刷新、数据回测等高级功能。
- 使用简单:通常提供内置函数,像普通 Excel 函数一样调用即可。
缺点:
- 通常需要付费。
推荐插件:
-
iFind 插件:
- 国内非常知名的金融数据终端插件,提供强大的 Excel 数据获取功能。
- 支持实时行情、财务数据、行业数据、宏观数据等。
- 使用方法简单,在单元格输入公式如
=ifind("行情.最新价", "600519")即可获取数据。 - 网址:
https://www.ifind.com.cn/
-
Wind (万得) / 同花顺 iFinD:
- 这是国内金融行业标准的付费数据终端,很多金融机构都在使用,它们通常有专门的 Excel 插件,功能极其强大。
- 价格昂贵,主要面向专业机构用户。
-
Tushare Pro:
- 一个开源的 Python财经数据接口,但也提供了通过 Excel 连接的方案(需要一定的技术配置)。
- 提供大量免费和付费的数据,非常适合量化分析和数据研究爱好者。
总结与对比
| 方法 | 优点 | 缺点 | 适合人群 |
|---|---|---|---|
| 内置功能 | 免费、简单、无需编程 | 不稳定、易失效、字段有限 | 普通用户,偶尔需要查看少量数据,不想安装任何东西。 |
| VBA 宏 | 高度自定义、功能强大 | 需要编程、对网页依赖高、操作复杂 | 有一定编程基础,希望实现高度自动化和数据抓取的用户。 |
| 专业插件 | 稳定、数据全、功能强大 | 通常需要付费 | 专业投资者、分析师、量化交易者,对数据质量和稳定性有高要求。 |
给您的建议:
- 如果您只是偶尔看看几只股票的行情,从 方法一 开始尝试,它最简单直接。
- 如果您需要定期跟踪多只股票,并希望做一些简单的自动化,可以学习 方法二,虽然门槛稍高,但一旦搭建好会非常方便。
- 如果您是认真的投资者或分析师,数据对您至关重要,强烈建议考虑 方法三,使用专业的插件,能为您节省大量时间和精力,并保证数据的准确性。
作者:咔咔本文地址:https://jits.cn/content/6857.html发布于 2025-11-10
文章转载或复制请以超链接形式并注明出处杰思科技・AI 股讯



还没有评论,来说两句吧...