2012-01-25 16 views
1

WebサイトからExcelスプレッドシートに情報をダウンロードしたい場合は、this format – not the actual websiteです。VBAを使用してExcelスプレッドシートにWebページをインポートする

上記のように特定の日付と会社で動作するマクロを使用してWebクエリを実行できます。しかし、私は - 入力ステートメントを介して - ウェブアドレスの任意の日付をダウンロードできるようにしたい。私は、関連するデータをダウンロードするために、ユーザに年、月、日、特定の会社を入力するように促すマクロを希望します。

私の試みがうまくいかず、上記のウェブサイトアドレスに&という会社の日付を記入する方法がわかりません!


これが役に立ちます。それは日付を必要とする競馬フォームのウェブサイトから取られました!

これはコードに日付を入れる試みですが、バグがあります。

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 

私は、これらの2つの行は特定の日付で動作することを知っていますが、ユーザーの入力日付に合わせる必要があります。

"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" 
+0

あなたの投稿は非常にわかりにくいです。いくつかのコードを試してみることができますか? – Mikhail

+0

これは非常に有効ですが、実際のサイトを私たちに教えてくれればもっと簡単になります – brettdj

答えて

0

Webクエリを手動で作成し、ユーザー入力に基づいてConnectionプロパティを変更します。私はhttp://tatts.com/racing/2012/7/31/QRからWebクエリを作成し、それをA10に入れました。それから私は年、月、日をB1:B3に入れました。 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の文字列を構築する接続のプロパティを更新し、リフレッシュ:このコードは、B1にあるものに基づいてWebクエリを更新します。

関連する問題