2016-07-24 9 views
1

私はVBAを初めて使い、ウェブサイトboxofficemojo.comからデータを引き出す方法を理解する上で多くの問題に直面しています。私は2010年から2015年まで毎週のデータを抽出しようとしています。だから私は同じ行に沿って何かをし、私のニーズに合うように変更したコードを見つけました。週間1データを引っ張っするのではなく、しかし単一のウェブサイトの複数のページからデータをインポートする

Sub Movies() 
Dim nextRow As Integer, i As Integer 
Application.ScreenUpdating = False 
Application.DisplayStatusBar = True 
For i = 1 To 52 
Application.StatusBar = "Processing Page " & i 
nextRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1 
With ActiveSheet.QueryTables.Add(Connection:= _ 
"URL;http://www.boxofficemojo.com/weekly/chart/?yr=2015&wk=&p=.htm" & i, _ 
Destination:=Range("A" & nextRow)) 

.Name = "weekly/chart/?yr=2015&wk=&p=.htm" 
.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 = xlWebFormattingAll 
.WebTables = "5" 
.WebPreFormattedTextToColumns = True 
.WebConsecutiveDelimitersAsOne = True 
.WebSingleBlockTextImport = False 
.WebDisableDateRecognition = True 
.WebDisableRedirections = False 
.Refresh BackgroundQuery:=False 
End With 
ThisWorkbook.Save 
Next i 
Application.StatusBar = False 
End Sub 

を次のようにそれがある - 2015年の52を、それが2016年の最新の週のデータを引っ張っに保持し、それを52回繰り返します。私はここに何が間違っているのか分からず、助けが本当に高く評価されるでしょう。

ご協力いただきありがとうございます。

+0

Excel 2010以上を使用している場合は、Power Query – Slai

答えて

1

あなたはとても近くにいます。

これにQueryTables.Add方法でurl文字列調整:あなたは2015年に2010を望んで述べたので、あなたは別のループFor x = 2010 to 2015内の既存のループをラップして、これにURLを変更することができ

http://www.boxofficemojo.com/weekly/chart/?yr=2015&wk=" & i & "&p=.htm" 

を:

http://www.boxofficemojo.com/weekly/chart/?yr=" & x & "&wk=" & i & "&p=.htm" 
+1

におかれまして、おかげです。あなたの助けに感謝。 :) –

関連する問題