作者:绿色风
分类:
时间:2022-08-17
浏览:113
楼主 amulee |
Q:如何利用VBA从网络获取时间来校准计算机时间? A:可以利用Microsoft.XMLHTTP来读取网页内容,请参考下列代码。
- Sub 利用网络时间校对当前计算机时间()
- Dim objXML As Object
- Dim strTemp As String
- Dim lStart As Long
- Dim lEnd As Long
- Dim DtWeb As Date
-
- '建立XMLHTTP对象。并获取http://www.timeanddate.com/worldclock/city.html?n=33的网页Text
- '&Refresh=" & Rnd 是为了避免直接从IE缓存中读取
- Set objXML = CreateObject("Microsoft.XMLHTTP")
- Randomize '初始化随机数,避免IE缓存重复
- objXML.Open "Get", "http://www.timeanddate.com/worldclock/city.html?n=33&Refresh=" & Rnd, False
- objXML.sEnd ""
- strTemp = objXML.responseText
- Set objXML = Nothing
-
- '对网页进行处理,找出当前日期和时间
- lStart = InStr(1, strTemp, "Current Time", vbTextCompare)
- lEnd = InStr(lStart, strTemp, "</strong>", vbTextCompare)
- strTemp = Mid(strTemp, lStart, lEnd - lStart)
- strTemp = Replace(strTemp, "Current Time</th><td><strong id=ct class=big>", "")
- arr = Split(strTemp, ",")
- DtWeb = CDate(arr(1) & arr(2))
-
- '设置当前日期和时间
- Date = DtWeb
- Time = DtWeb
- MsgBox "日期和时间已经校对成功!" & vbCrLf & "当前日期和时间为:" & DtWeb
- End Sub
时间处理除上述方法外,还可以采取以下方法
- strTemp = ObjXML.getResponseHeader("Date")
- ArrTmp = Split(DateTxt, " ")
- lBd = LBound(ArrTmp)
- DtWeb = Format(ArrTmp(lBd + 1) & "-" & ArrTmp(lBd + 2) & "-" & ArrTmp(lBd + 3), "yy-m-d") + CDate(ArrTmp(lBd + 4)) + "8:00:00"
利用网络获取时间的意义在于制作具有有效期验证的VBA程序,避免用户修改计算机时间作弊。
上述获取网页内容的方法还可以用于网页的分析以及实时更新Excel表格内容。
获取网络时间.rar |
2楼 wxd95 |
知道法国获得知道法国获得法规及 |
3楼 hahaboy86 |
不错 正是我要的东西哦 |
4楼 轩辕轼轲 |
能否再判断断开网络的情况呢,如果断开了网络,提示网络故障! |
5楼 0Mouse |
如何运用VBA判断计算机是否连网呢?
(出处: Excel 技巧网) |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一