Dim i, objHTTP, htmlpage, match, regex, strreg, Filename, NewUrl
Const FINALDESTINATION = "C:\TEMP\"
Const MYURL = "http://abs.gov.au/ausstats/meisubs.NSF/log?openagent&5206001_key_aggregates.xls&5206.0&Time%20Series%20Spreadsheet&9498928DCD5F7B92CA257A1400148474&0&Mar%202012&06.06.2012&Latest"
Const FILELIST = "http://abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/5206.0Mar%202012?OpenDocument"
Const HOME = "http://abs.gov.au"
Sub DownloadXLSHyperlinks()
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objHTTP.Open "GET", FILELIST, False
objHTTP.Send
For i = 1 To LenB(objHTTP.ResponseBody)
htmlpage = htmlpage & Chr(AscB(MidB(objHTTP.ResponseBody, i, 1)))
Next
Set regex = New RegExp
strreg = "\u002Fausstats\u002Fmeisubs\.NSF\u002Flog\?openagent\&.+\.xls[\w*\d\.\s\&*]+"
regex.Pattern = strreg
regex.IgnoreCase = True
regex.Global = True
Set match = regex.Execute(htmlpage)
If match.Count > 0 Then
For i = 1 To match.Count - 1
Filename = match.Item(i).Value
NewUrl = HOME + Filename
objHTTP.Open "GET", NewUrl, False
objHTTP.Send
strreg = "[\d]+.*xls"
regex.Pattern = strreg
Set FileSave = regex.Execute(Filename)
If FileSave.Count > 0 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write objHTTP.ResponseBody
oStream.SaveToFile (FINALDESTINATION + FileSave.Item(0).Value)
oStream.Close
Set oStream = Nothing
End If
NewUrl = ""
Filename = ""
Next
End If
End Sub