模板里写下面代码:
#If VBA7 Then
Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long
#Else
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
#End If
Public 结束flag As Boolean
'保存工作表,避免切换工作薄的时候,将数据写到激活的工作薄中
Public ws As Worksheet
'创建按钮调用该函数即可
Sub test()
Set ws = Sheet1
runtimer
End Sub
'定时器
Sub runtimer()
'调整间隔
Application.OnTime Now() + TimeValue("00:00:02"), procedure:="getData"
Set ws = Sheet1
End Sub
Sub getData()
'获取网络数据
Set oHTML = CreateObject("htmlfile")
Set oWindow = oHTML.parentWindow
Set http = CreateObject("winhttp.winhttprequest.5.1")
http.Open "GET", "
http://www.whalebj.com/xzjc/default.aspx?tdsourcetag=s_pctim_aiomsg", False
http.send
oHTML.write (http.responseText)
txt = oHTML.getElementById("Label_Msg").innerText
'提取数据
Dim objRegEx As Object
Set objRegEx = CreateObject("vbscript.regexp")
objRegEx.Global = True
myString = txt
objRegEx.Pattern = "\((.*?)\)"
Set objMH = objRegEx.Execute(myString)
日期 = objMH(0).submatches(0)
objRegEx.Pattern = "场内待运车辆数为:(.*?);"
Set objMH = objRegEx.Execute(myString)
场内待运车辆 = objMH(0).submatches(0)
objRegEx.Pattern = "前半小时进场车辆数为:(.*?);"
Set objMH = objRegEx.Execute(myString)
进场车辆 = objMH(0).submatches(0)
objRegEx.Pattern = "前半小时离场车辆数为:(.*?);"
Set objMH = objRegEx.Execute(myString)
离场车辆 = objMH(0).submatches(0)
Set objRegEx = Nothing
'写入单元格
Set 日期rng = ws.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
日期rng.Value = 日期
日期rng.Offset(0, 1).Value = 场内待运车辆
日期rng.Offset(0, 2).Value = 进场车辆
日期rng.Offset(0, 3).Value = 离场车辆
'循环调用 定时任务runtimer
Debug.Print 结束flag
If 结束flag = False Then
runtimer
End If
End Sub