恒生指数是衡量香港股票市场表现的重要指标,反映了蓝筹股票的整体表现。VBA(Visual Basic for Applications)是一种编程语言,可用于自动化任务并与 Microsoft Office 应用程序交互。将指导您如何使用 VBA 实时获取恒生指数数据并将其显示在 Excel 工作表中。
1. 导入必要的库
为了使用 VBA 访问互联网数据,我们需要导入必要的库:
vba
Option Explicit
Public Const MSXML2_ServerXMLHTTP60 = "MSXML2.ServerXMLHTTP.6.0"
2. 创建 HTTP 请求
我们将使用 XMLHTTP 对象向恒生指数 API 发送 HTTP 请求。

```vba
Public Function GetHangSengIndex() As String
Dim xmlhttp As Object
Set xmlhttp = CreateObject(MSXML2_ServerXMLHTTP60)
xmlhttp.Open "GET", "https://finance.yahoo.com/quote/%5EHSI/history?period1=1577836800&period2=1616409600&interval=1d&filter=history&frequency=1d", Falsexmlhttp.Send
If xmlhttp.Status = 200 Then
GetHangSengIndex = xmlhttp.responseText
End If
End Function
```
3. 解析响应
响应是一个 HTML 文档,其中包含恒生指数历史数据。我们需要解析此文档以提取最新值。
```vba
Public Function ParseHangSengIndex(html As String) As Double
Dim doc As Object
Set doc = CreateObject("HTMLFile")
doc.Write htmlDim rows As Object
Set rows = doc.getElementsByTagName("tr")
Dim lastRow As Object
Set lastRow = rows(rows.Length - 1)
Dim price As String
price = lastRow.getElementsByTagName("td")(4).innerText
ParseHangSengIndex = CDbl(Mid(price, 1, Len(price) - 3))
End Function
```
4. 更新 Excel 工作表
我们将获取的恒生指数值更新到 Excel 工作表。
```vba
Public Sub UpdateWorksheet()
Dim index As Double
index = ParseHangSengIndex(GetHangSengIndex())
Range("A1") = index
End Sub
```
使用示例
在 Excel 工作表中创建一个模块,将上述代码粘贴进去。运行以下宏:
vba
Module1.UpdateWorksheet
这将在单元格 A1 中显示实时的恒生指数值。您还可以根据需要设置自动刷新时间间隔。
上一篇
今日股票行情指数,如同经济脉搏的实时显示器,每一刻的跳动都牵动着无数投资者、企业乃至整个社会的神经。它不仅仅是一个简 ...
原油作为全球重要的战略资源,其价格波动牵动着世界经济的神经。当国际原油价格下跌时,消费者普遍期待加油站的油价也能随之 ...
原油,作为全球经济的“血液”,其价格波动牵动着无数投资者的心弦。在原油市场中,我们经常会听到“原油主连”和“原油指数”这两 ...
当我们在财经新闻中看到“美股三大股指全线收跌”的时,这绝非一个简单的数字变化,它是一个强烈的市场信号,预示着投资者情绪 ...
在瞬息万变的期货市场中,技术分析工具是交易者洞察市场趋势、制定交易策略的得力助手。在众多指标中,“均价线”无疑是最基础 ...