Я новичок в VBA и пытаюсь изучить некоторые функции. То, что я создал, - это код в excel, который соединяется с API и извлекает данные в таблицу. Мне нужно, чтобы он работал в течение определенного периода времени (с 9 до 16 часов) и обновлялся каждые 30 секунд. Моя проблема в том, что я просто не знаю, как это сделать. Вот мой код Пожалуйста, помогите! Благодаря!!Looped Timer в Excel Код VBA
Также таблица заселяется является установка в следующих колонках: «Символ» «Имя» «Ask» «Bid» «Цена» «Days Range» «1yr Целевая цена» «Объем» «Avg Daily Vol»
Мой код:
Private Sub BTN_Start_Click()
Dim W As Worksheet: Set W = ActiveSheet
Dim Last As Integer: Last = W.Range("A10000").End(xlUp).Row
If Last = 1 Then Exit Sub
Dim Symbol As String
Dim i As Integer
For i = 2 To Last
Symbol = Symbol & W.Range("A" & i).Value & "+"
Next i
Symbol = Left(Symbol, Len(Symbol) - 1)
Dim url As String: url = "http://finance.yahoo.com/d/quotes.cvs?s=" & Symbol & "&f=snb2b3k1m2t8va2"
Dim Http As New winhttprequest
Http.Open "GET", url, False
Http.send
Dim Resp As String: Resp = Http.ResponseText
Dim Lines As Variant: Lines = Split(Resp, vbNewLine)
Dim sLine As String
Dim Values As Variant
For i = 0 To UBound(Lines)
sLine = Lines(i)
If InStr(sLine, ",") > 0 Then
Values = Split(sLine, ",")
W.Cells(i + 2, 2).Value = Split(Split(sLine, Chr(34) & "," & Chr(34))(1), Chr(34))(0)
W.Cells(i + 2, 3).Value = Values(UBound(Values) - 6)
W.Cells(i + 2, 4).Value = Values(UBound(Values) - 5)
W.Cells(i + 2, 5).Value = Values(UBound(Values) - 4)
W.Cells(i + 2, 6).Value = Values(UBound(Values) - 3)
W.Cells(i + 2, 7).Value = Values(UBound(Values) - 2)
W.Cells(i + 2, 8).Value = Values(UBound(Values) - 1)
W.Cells(i + 2, 9).Value = Values(UBound(Values))
End If
Next i
W.Cells.Columns.AutoFit
End Sub
WOW !! Я просто потрясающе! Большое спасибо. – Ralph
Если один из ответов ответил на ваш вопрос, выберите его в качестве ответа. И не стесняйтесь голосовать, если это или другие ответы были полезны :) –