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