Tom’s Tutorials For Excel: What time is it *Really*? Ask the US Navy With a Web Query
What is today’s date, and what is the current time of day? Here, you create a Web query to import a display of the current day and time for several North American time zones.
I came up with this solution out of necessity a few years ago while developing a client project that called for no changes to be allowed in workbooks after certain dates and times. Some users were circumventing the rule by changing the system clock on their computers, so I used a reliable, external source by which to programmatically monitor actual dates and times.
You access the website to the United States Naval Observatory, where the day and time are recorded on the Master Clock of the United States Navy. The Web query will place the information onto Sheet1 from a macro named TimeAfterTime, similiar to what is shown in the above picture..
'Open a With structure for the destination worksheet.
'Declare a String type variable for the web site address.
Dim strURL As String
'Define the web site address, from which the information
'will be imported to your worksheet.
strURL = "http://tycho.usno.navy.mil/cgi-bin/timer.pl"
'For consistency, I prefer to activate the worksheet
'that will receive the web data.
'Cell A1 is a convenient cell to situate yourself.
Application.Goto .Range("A1"), True
'Clear the cells in the worksheet so you know the data
'being imported will not be confused with other data
'you may have imported previously and not yet deleted.
'Open a With structure for the Add method of your new
'Query Table. The connection, URL, and destination sheet,
'and other information that follows, must be specified.
With .QueryTables.Add _
(Connection:="URL;" & strURL, Destination:=.Range("A1"))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.SaveData = True
'Close the With structure of Query Table's Add method.
'Close the With structure for the destination worksheet.
Dear Tom, I had to tweek the macro as strURL = “http://tycho.usno.navy.mil/timer.pl” did not open the URL.
Instead, I made it:
strURL = “https://www.usno.navy.mil/USNO/time/display-clocks/simpletime”.