我试图从以下链接导入表到我的数据库:http://www.abif.cl/tasas.php?tipo=5
我试图通过VBA将页面作为HTML文件下载到目录中,然后创建一个链接表。
当我通过Chrome手动下载它时,使用"另存为"下的"下载完整网页"选项,这工作得很好。
然而,当我使用VBA下载网页时,当我试图链接表时,我得到保留错误(-5016)。
澄清:当我尝试以HTML下载页面时,错误不会发生;相反,它发生在我尝试将表链接到下载的HTML之后(如果HTML是通过浏览器手动下载的,则不会发生)
这是我用来下载HTML的VBA:
Option Compare Database
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) _
As Long
Public Function DownloadFile( _
ByVal strURL As String, _
ByVal strLocalFilename As String) _
As Long
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, strURL & vbNullChar, strLocalFilename & vbNullChar, 0, 0)
DownloadFile = lngRetVal
End Function
如果还有什么我可以提供的信息,请告诉我!也许有一种方法可以下载VBA中的"完整网页"?
谢谢!
我试着以这种方式下载HTML,它碰巧工作。这绝不是一个优雅的解决方案,我仍然开放的任何建议,为什么我得到我的错误/如何修复它。谢谢。
Public Function SaveHTML(strURL As String, strOutFile As String)
Dim IE As Object
Dim i As Long
Dim FF As Integer
Set IE = CreateObject("Internetexplorer.Application")
IE.Visible = False
IE.Navigate strURL
Do
Loop While IE.Busy
'Creates a file as specified
' this will overwrite an existing file if already exists
CreateObject("Scripting.FileSystemObject").CreateTextFile strOutFile
FF = FreeFile
Open strOutFile For Output As #FF
With IE.Document.Body
Print #FF, .OuterHtml & .InnerHtml
End With
Close #FF
IE.Quit
'Set IE = Nothing
End Function