0
目的様々な通貨の為替レートのデータでウェブサイトへのページで、ELEMENTIDを取得し、新しい配列
プルを取り込みます。
APPROACH
- はアクティブなシートを選択し、通貨ツー変換する(配列に例えば[ "EUR"、 "GBP"、 "USD"]
- ブラウザを開き、訪問をコピーします通貨換算サイト異なる通貨を介し
- ループと抽出通貨換算は、アレイに
- 追加の変換係数を係数 最新の変換がライン
IE.Navigate "http://www.usforex.com/currency-converter/" & locals(i) & "/usd/1.00/false"
について
CODE
Sub retreiveCurrencies()
Dim ws As Worksheet
Dim locals() As Variant
Dim exchangeArray() As Variant
Dim i As Long
Dim IE As Object
'Select currencies to convert
Sheets("APPENDIX - CURRENCY CONVERTER").Activate
locals = Array(ActiveSheet.Range("B2:B15"))
'This should return locals = ["EUR", "GBP, "USD"]
'Prep Internet Explorer
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
Do While IE.Busy And Not IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
'Loop through currencies and retreive exchange rates. Paste rates into exchangeArray
For i = LBound(locals()) To UBound(locals())
IE.Navigate "http://www.usforex.com/currency-converter/" & locals(i) & "/usd/1.00/false"
exchange = IE.Document.GetElementById("converterToAmount").innerText
'exchangeArray = [] QUESTION: What should I add here to create an array of exchange rates?
Next i
'Paste exchange rate array into currency conversion column
ActiveSheet.Range("D2:D15") = exchangeArray()
End Sub
質問/発行(S)
- を因子と3210
- 再作成は、私が "種類不一致" を受信優れ。
locals()
をテキストに変換する必要がありますか?このコードでは、多くのエラーがあるかもしれません:。IE.Document.GetElementById("converterToAmount").innerText
を通じてIループ行い、新しい配列exchangeArray()
NOTEに取得した値を追加する方法
ありがとうございました。しかし、私は今、 "IE.Navigate" http://www.usforex.com/currency-converter/ "&locals(i)&" /usd/1.00/false ""行に "subscript out of range"を受け取っています。 これがURLパラメータにどのように影響するかわからない – jonplaca
@kidlogic Ooops - その行を2Dインデックスに変更するのを忘れました。編集を参照してください。 – Comintern
私はVBAのスキルを拡張する必要があるように見えます。これは、エラーを投げないという問題を解決しました。しかし、I.Eはアレイの最後の値(「EUR」または「GBP」ではなく「USD」である)を引き込むだけである。私はこれを解決するためにさらに深く潜り込みます。ありがとうございました! EDIT:Do While IE.Busy ...ループを提案したForループ内で追加して解決しました。 – jonplaca