Excel精英培训网

 找回密码
 注册

如何利用VBA从网络获取时间来校准计算机时间?

热度 3已有 3710 次阅读2010-12-29 08:52 |个人分类:VBA|

可以利用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表格内容。

刚表态过的朋友 (0 人)

发表评论 评论 (2 个评论)

回复 raulerini 2010-12-29 11:06
这个是一定要顶的。。。
回复 被禁锢的风 2011-2-11 08:40
好东西,避免机子时间不对导致的错误

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-10 09:19 , Processed in 0.364787 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部