Приведенная ниже функция открывает Oanda.com и принимает курс обмена валюты между долларом США и вводом (другая валюта).Уравнение будет заполнено другим макросом, чтобы охватить 48 строк.Макрос, как он есть, откроет 48 Internet Explorer Windows и закроет их после извлечения точки данных (1 за раз, когда уравнение обновляется вниз по столбцу).Этот процесс утомителен, и приведенный ниже метод кажется более эффективным на всех фронтах, но я не могу понять, как его реализовать:
Есть ли способ изменить это, чтобы сначала проверить существующее окно Internet Explorer, если онооткройте, просто используйте это окно, чтобы перейти в домен (который здесь переменный) и извлечь данные.Если окно не открыто, откройте его.Я не знаю процедур для поиска программ, работающих в фоновом режиме.
Основная цель - ускорить уравнение при его выполнении путем заполнения.Любые предложения приветствуются.
Ясность Редактировать: я создал UDF, чтобы помочь мне построить таблицу.Тикеры валют (USD, EUR, GBP и т. Д.) Будут охватывать столбец A до строки 48. В столбце B должен отображаться соответствующий курс обмена, соответствующий 1 доллару США (до строки 48).UDF ниже делает как задумано, но я ищу альтернативный, более эффективный способ сделать это.
Параметр Явный
Public Function ConvertUSD(ConvertWhat As String) As Double
'References
' Microsoft XML, vs.0
' Microsoft Internet Controls
' Microsoft HTML Object Library.
Dim IE As New InternetExplorer
'IE.Visible = True
IE.Navigate "https://www.oanda.com/currency/converter?quote_currency=USD&base_currency=" & ConvertWhat
Do
DoEvents
Loop Until IE.ReadyState = ReadyState_Complete
Dim Doc As HTMLDocument
Set Doc = IE.Document
Dim Ans As String
Ans = Trim(Doc.getElementsByTagName("tbody")(2).innerText)
Dim AnsExtract As Variant
AnsExtract = Split(Ans, " ")
ConvertUSD = AnsExtract(4)
IE.Quit
End Function