【发布时间】:2014-12-29 14:09:54
【问题描述】:
我是一名地质学家,在路易斯安那州的一家小型石油公司工作。我组成了我们的技术部门,不幸的是我的编码经验非常有限。过去我使用过非常基本的 vba 编码,但我在日常工作中没有编写那么多代码,所以我已经忘记了大部分。
路易斯安那州 dnr 为该州钻探的每一口油井保留了惊人的记录,所有这些记录都位于 www.Sonris.com。这些记录的一部分是每口井的生产记录。我想创建一个遵循给定 url 的宏并下载在 URL 上找到的表(也就是生产记录)。下载文件后,我希望它把表格放在一个新的工作表中,然后根据井名命名这个工作表。
我已经从网络函数中获取数据,但是我不能使函数足够动态。我需要代码来复制在单元格中找到的超链接数据。目前,代码只是跟随我在录制宏时复制和粘贴的超链接。
任何帮助将不胜感激
真诚地, 约西亚
下面是生成的代码;
Sub Macro2()
'
' Macro2 Macro
' attempt with multiple well to look at code instead of 1 well
'
'
Range("E27").Select
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://sonlite.dnr.state.la.us/sundown/cart_prod/cart_con_wellinfo2?p_WSN=159392" _
, Destination:=Range("$A$1"))
.Name = "cart_con_wellinfo2?p_WSN=159392"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "1,11"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Sheets("Sheet1").Select
End Sub
【问题讨论】:
-
您要检索多少口井,WSN 编号在哪里,您想要所有表格还是仅选择一个?
-
理想情况下,我希望对整个油田进行此操作(因此在 300 口井的范围内)。我只想在一组表中使用 1 个表。什么是 WSN 号码?
-
我猜 WSN 是 井序列号,如
...?p_WSN=159392。 -
啊,是的,我很抱歉。我以为那是一个代码。那确实代表井序列号。序列号位于工作表的列中。到目前为止,我还没有尝试在代码中使用它。
-
你上面的代码当前在运行时做了什么?它是否适用于特定的
WSN=159392?
标签: vba excel web-scraping