Импорт веб-страницы в электронную таблицу Excel с использованием VBA - PullRequest
1 голос
/ 25 января 2012

Я хочу иметь возможность загружать информацию с веб-сайта в электронную таблицу Excel, которая находится в этом формате, а не на реальном веб-сайте .

Я могу выполнить веб-запрос с помощью макроса, который работает для определенной даты и компании, как указано выше. Тем не менее, я хочу иметь возможность - через заявление ввода - загрузить любую дату в веб-адрес. Я хотел бы, чтобы макрос попросил пользователя ввести год, месяц и день и конкретную компанию, чтобы загрузить соответствующие данные.

Я не знаю, как написать код для ЛЮБОЙ даты и компании в адрес веб-сайта выше, так как мои попытки не работают!


Надеюсь, это поможет. Это было взято с веб-сайта формы скачек, который требует даты!

Это была моя попытка кода поставить дату, но в ней есть ошибки!

RaceDate = InputBox("Please enter today's date (YYYY/MM/DD)", "Enter Date")
Meeting = InputBox("Enter Location of Race", "Enter Meeting")
Race = InputBox("Enter Race  Number", "Enter Race")
Range("A13").Select
With ActiveSheet.QueryTables.Add(Connection:= "URL;http://tatts.com/racing/formguide.aspx? RaceDate & Meeting & Race"
  , Destination:=Range("$A$13"))
  .Name = "formguide.aspx? RaceDate & Meeting & Race"
  .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

Я знаю, что эти две строки будут работать для определенной даты, но мне нужно настроить дату, введенную пользователем!

"URL;http://tatts.com/racing/formguide.aspx?year=2012&month=1&day=20&meeting=QR&race=5" _
        , Destination:=Range("$A$13"))
        .Name = "formguide.aspx?year=2012&month=1&day=20&meeting=QR&race=5"

1 Ответ

0 голосов
/ 31 июля 2012

Создайте веб-запрос вручную, затем измените свойство Connection на основе пользовательского ввода.Я создал веб-запрос из http://tatts.com/racing/2012/7/31/QR и поместил его в A10.Затем я поместил год, месяц и день в B1: B3.Этот код обновляет веб-запрос в зависимости от того, что находится в B1: B3

Sub UpdateQuery()

    Dim sURL As String

    With Sheet1
        sURL = "URL;http://tatts.com/racing/" & .Range("B1").Value & "/" & .Range("b2").Value & "/" & .Range("b3").Value & "/QR"

        .QueryTables(1).Connection = sURL
        .QueryTables(1).Refresh

    End With

End Sub

. Он просто создает строку для нужного URL-адреса, обновляет свойство Connection и обновляет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...