通过以下EXCEL数据的处理股价图,就可以很方便地查看38家A股上市银行当日股票变动情况了。
具体如下图:

方法如下:
一、通过VBA获取所有上市银行的证券名称和证券代码
可以通过以下VBA代码:
Sub 提取上市银行列表()
Call 填充上市公司证券列表("银行,农商行,张家港行")
End Sub
Sub 填充上市公司证券列表(Optional strKeyWord As String = "")
Dim strContent As String
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET", "http://ddx.gubit.cn/js/stockCode.js", False
.Send
'简体中文
strContent = StrConv(.responseBody, vbUnicode, &H804)
'JavaScript
With CreateObject("MSScriptControl.ScriptControl")
.Language = "JScript"
.AddCode strContent
Dim iCount As Integer
iCount = .Eval("stockCodeArray.length")
Dim intRows As Integer
intRows = 0
Cells(1, 1) = "证券代码"
Cells(1, 2) = "证券名称"
If strKeyWord = "" Then
For i = 0 To iCount - 1
Cells(i + 2, 1) = .Eval("stockCodeArray[" & i & "][0]")
Cells(i + 2, 2) = .Eval("stockCodeArray[" & i & "][1]")
Next i
Else
Dim str证券名称 As String
Dim bln是否包含 As Boolean
strKeyWord = Replace(strKeyWord, "股价图,", ",")
For i = 0 To iCount - 1
str证券名称 = .Eval("stockCodeArray[" & i & "][1]")
bln是否包含 = False
For Each strList In Split(strKeyWord, ",")
If Len(Replace(str证券名称, strList, "")) < Len(str证券名称) Then
bln是否包含 = True
Exit For
End If
Next
If bln是否包含 Then
Cells(intRows + 2, 1) = .Eval("stockCodeArray[" & i & "][0]")
Cells(intRows + 2, 2) = str证券名称
intRows = intRows + 1
End If
Next i
End If
End With
End With
Cells(1, 1).Select
End Sub
二、通过Sina财经网站获取每一支股票当日交易信息
通过公式股价图,直接引用:

自定义函数如下:
Function StockFieldInfoFromSina(Optional strType As Integer = 0) As String
Dim StockFieldInfo As String
Select Case strType
Case 0
StockFieldInfo = "证券名称"
Case 1
StockFieldInfo = "今日开盘价"
Case 2
StockFieldInfo = "上日收盘价"
Case 3
StockFieldInfo = "当前价格"
Case 4
StockFieldInfo = "今日最高价"
Case 5
StockFieldInfo = "今日最低价"
Case 6
StockFieldInfo = "竞买价"
Case 7
StockFieldInfo = "竞卖价"
Case 8
StockFieldInfo = "成交数量"
Case 9
StockFieldInfo = "成交金额"
Case 10
StockFieldInfo = "买一数量"
Case 11
StockFieldInfo = "买一价格"
Case 12
StockFieldInfo = "买二数量"
Case 13
StockFieldInfo = "买二价格"
Case 14
StockFieldInfo = "买三数量"
Case 15
StockFieldInfo = "买三价格"
Case 16
StockFieldInfo = "买四数量"
Case 17
StockFieldInfo = "买四价格"
Case 18
StockFieldInfo = "买五数量"
Case 19
StockFieldInfo = "买五价格"
Case 20
StockFieldInfo = "卖一数量"
Case 21
StockFieldInfo = "卖一报价"
Case 22
StockFieldInfo = "卖二数量"
Case 23
StockFieldInfo = "卖二报价"
Case 24
StockFieldInfo = "卖三数量"
Case 25
StockFieldInfo = "卖三报价"
Case 26
StockFieldInfo = "卖四数量"
Case 27
StockFieldInfo = "卖四报价"
Case 28
StockFieldInfo = "卖五数量"
Case 29
StockFieldInfo = "卖五报价"
Case 30
StockFieldInfo = "日期(yyyy-MM-dd)"
Case 31
StockFieldInfo = "时间(hh:mm:ss)"
Case 32
StockFieldInfo = "未知字段"
Case 33
StockFieldInfo = "未知字段"
Case Else
StockFieldInfo = "vbNull"
End Select
StockFieldInfoFromSina = StockFieldInfo
End Function
Function StockInfoFromSina(strCode As String, Optional strType As Integer = 0) As String
Dim strStockInfo As String
strStockInfo = ""
Dim url As String
'Json地址
url = "http://hq.sinajs.cn/list="
Dim preCode As String
preCode = Left(strCode, 1)
Select Case preCode
Case "0", "3"
'深圳A股
url = url & "sz" + strCode
Case Else
'上海A股
url = url & "sh" + strCode
End Select
Dim strResponseText As String
Dim strJson As String
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
.Send
strResponseText = .responseText
End With
'根据双引号提取数据
strJson = Split(strResponseText, Chr(34))(1)
'根据类别参数,提取字符
Select Case strType
Case 0 To 33
strStockInfo = Split(strJson, ",")(strType)
Case Else
strStockInfo = "vbNull"
End Select
'反馈结果
StockInfoFromSina = strStockInfo
End Function
三、通过条件格式,将上涨的调整为红色,将下跌的调整为绿色


题外话:
查股票的方法,千万种。
上述案例,只是一个Excel应用举例。
并且,用VBA不同的方法,提取从网页获取的数据。