我有一个网页,该网页中有一个文本文件。文本文件名每周都在不断变化。
如何在网页中搜索文本文件并将内容下载到Excel工作表中。任何指针从哪里开始?我知道如何使用给定的URL导航到网页。
问题是我不知道这个文本文件的URL(因为它每周都在不断变化),所以我怎么知道这个?
http://usda.mannlib.cornell.edu/MannUsda/viewDocumentInfo.do?documentID=1048
这是网页的链接。我需要在这里下载txt文件(Crop Progress,11.24.2014 [txt])。请帮帮我。
录制的宏:
Sub Macro4()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://usda.mannlib.cornell.edu/usda/current/CropProg/CropProg-11-24-2014.txt" _
, Destination:=Range("$A$1"))
.CommandType = 0
.Name = "CropProg-11-24-2014"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub

答案 0 :(得分:0)
首先打开您从VBA控制的Internet Explorer实例中的网页(来自Microsoft Internet Controls库的ShDocVw.InternetExplorer对象)。 InternetExplorer对象有一个成员'文件'其中包含文档对象模型(DOM),其中包含网页上的所有HTML标记。使用MSHTML库来处理DOM。
您可以在DOM中搜索包含文本" txt"的锚元素。您可以使用document.SelectNodes()中的XPath查询执行此操作。如果您不想使用XPath,可以遍历document.all的元素或使用GetElementsByTagName()。
或者,您可能会发现页面上的链接每次都相同(没有添加或删除),因此文本文件的链接始终位于document.getelementsbytagname返回的数组中的相同位置(&# 34;&#34)。即使用类似document.GetElementsByTagName(" a")(12)的内容,如果它始终是页面上的第13个锚标记。
获得对文本文件超链接的引用后,该URL就位于该锚元素的href属性中。