Скачать данные из Yahoo финансов, чтобы преуспеть с помощью VBA
У меня есть этот код VBA, который загружает данные из Yahoo Yahoo на лист Excel, но проблема в том, что иногда он работает отлично, а иногда я получаю сообщение об ошибке "невозможно загрузить с" URL ".." в зависимости от компьютера, который я использую, и числа данных я выбираю для загрузки.
Вот некоторые значения для переменной акции: VTI, EEM, IWM, DBC, BND, googl, AAPL, ESRX, BAC, INTC, AMD.... Это прекрасно работает, когда я ставлю 5 или меньше, но с 6 или больше я иногда получаю ошибку выше.
Переменные sday/smonth/syear предназначены для даты начала, а eday/... - конец, s должен быть старше, чем e.
Я нашел решение, я использую Doevents, он работает на 100% на 64-разрядных Excel. Но у меня все еще есть проблема в Excel 32 бит
Sheets.Add.Name = "Inter"
sday = Day(Sheets("Interface").Cells(4, 4).Value)
smonth = Month(Sheets("Interface").Cells(4, 4).Value) - 1
syear = Year(Sheets("Interface").Cells(4, 4).Value)
eday = Day(Sheets("Interface").Cells(5, 4).Value)
emonth = Month(Sheets("Interface").Cells(5, 4).Value) - 1
eyear = Year(Sheets("Interface").Cells(5, 4).Value)
For j = 2 To n + 1
stock = Sheets("Stocks").Cells(1, j).Value
'MsgBox stock
Worksheets("Inter").Activate
'Columns("A:G").ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;http://chart.finance.yahoo.com/table.csv?s=" & stock & "&a=" & smonth & "&b=" & sday & "&c=" & syear & "&d=" & emonth & "&e=" & eday & "&f=" & eyear & "&g=m&ignore=.csv" _
, Destination:=Range("$A$1"))
.Name = "table1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(5, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With