理想的には、このマクロはそれぞれの会社の情報で新しいタブを作成しますが、新しいタブを作成することにも苦労しています。それは私にエラー400新しいExcelワークシートを追加するとエラー400が発生する
Sub getStockPrices()
Dim DataSheet As Worksheet
Dim EndDate As Date
Dim StartDate As Date
Dim Symbol As String
Dim Interval As String
Dim qurl As String
Dim nQuery As Name
Dim LastRow As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
Sheets("data").Cells.Clear
Set DataSheet = ActiveSheet
StartDate = DataSheet.Range("startDate").Value
EndDate = DataSheet.Range("endDate").Value
Symbol = DataSheet.Range("ticker").Value
Interval = DataSheet.Range("Interval").Value
Sheets("data").Range("a1").CurrentRegion.ClearContents
qurl = "http://ichart.finance.yahoo.com/table.csv?s=" & Symbol
qurl = qurl & "&a=" & Month(StartDate) - 1 & "&b=" & Day(StartDate) & _
"&c=" & Year(StartDate) & "&d=" & Month(EndDate) - 1 & "&e=" & _
Day(EndDate) & "&f=" & Year(EndDate) & "&g=" & Interval & "&q=q&y=0&z=" & _
Symbol & "&x=.csv"
QueryQuote:
With Sheets("data").QueryTables.Add(Connection:="URL;" & qurl, Destination:=Sheets("data").Range("a1"))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Sheets("data").Range("a1").CurrentRegion.TextToColumns Destination:=Sheets("data").Range("a1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, other:=False
Sheets("data").Columns("A:G").ColumnWidth = 12
End Sub
マクロを起動するフィールドを持つシートの画像を与えるように、このマクロの終わり、。
私は、株式相場、日付範囲、および日または週価格に入れて、それがヤフーに呼び出し、この情報を「データ」タブに入力します。私は分析するためにこれを数十の企業で実行する必要がある状況がありますが、私が今設定した方法に基づいて、毎回新しいシートを作成してデータをコピーする必要があります。
会社のティッカーシンボルと日付範囲のリストをループしてこのコードを実行し、それを新しいシートに置き、会社のティッカーが何であれシートに名前を付けて、次の会社に移動するにはどうすればよいですか?
少なくとも、新しいタブを作成し、ちょうど実行された会社のティッカーに名前を付ける方法。
何行エラー400は、それが発生したときに発生しますか。 – BruceWayne