Я был довольно знаком с Excel VBA, и у меня есть некоторые простые, но сложные проблемы (возможно, из-за передозировки кофе). Мой код в настоящее время вытаскивает таблицы из Yahoo Finance в цикле (поэтому я могу добавить несколько тикеров). То, что я пытаюсь настроить, сначала вводит тикеры вдоль строки, а не вдоль столбца - я попытался изменить все «строки» строки lr1, и это не сильно повлияло. Во-вторых, я попытался выяснить способ вывести информацию, поэтому только цифры, а не все таблицы вытащили с тех же позиций каждый раз. Это помогло бы, если бы я мог также стереть/перезаписать результаты макроса каждый раз, когда я нажимаю кнопку обновления.Excel VBA Web Table & Input
Результат будет таким же простым, как положить в тикер на одной колонке вверху, а цифры выйдут прямо под ним после нажатия кнопки - я чувствую, что я рядом, но без сигары.
Это код, который работает, а не тот, который пронизан таким количеством ошибок.
Sub RefreshQuery()
On Error Resume Next
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim DestinationCell As Range
Dim StockSymbol As String
Dim i As Long, lr1 As Long, lr2 As Long
lr1 = Range("B:B").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For i = 1 To QueryTables.Count
QueryTables(i).Delete
Next i
Range("C:D").Clear
For i = 2 To lr1
lr2 = Range("D:D").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set DestinationCell = Cells((lr2 + 3), 4)
StockSymbol = Cells(i, 2).Value
Cells((lr2 + 2), 4).Value = "****" & StockSymbol & "****"
With QueryTables.Add(Connection:="URL;http://finance.yahoo.com/q/ks?s=" & StockSymbol & "+Key+Statistics", Destination:=DestinationCell)
.Name = "q/ks?s=" & StockSymbol & "+Key+Statistics"
.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 = "8,9,10,11,12,13,14,15,16,17,18,19,20,21,25,26,27,29"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next i
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
End Sub
Спасибо за помощь!