VBA:下拉列表中的数据输入

时间:2017-08-14 02:35:29

标签: html excel vba

目标是在此字段中输入硬币的3位数字,例如“ETH”或“BCH”或其他字母,并以美元结果获得结果:

enter image description here

我已经输入了前一个字段的金额,但是下一个字段让我很头疼,我尝试了“GetElementsByID / Classname / Tagname`”,但也许我做错了。

这是我的代码:

Sub Calculate_USD ()
    Sheets (1) .Select
    Dim ieApp As InternetExplorer
    Dim ieDoc As Object
    Dim ieTable As Object
    Dim clip As DataObject
    Dim variable As String
    
    return:
    
    'Create a new instance of ie
    Set ieApp = New InternetExplorer
    
    'You do not need this, but it's good for debugging'
    IeApp.Visible = True
    
    Go to the page we want
    IeApp.Navigate "https://coinmarketcap.com/calculator/"
    Do While ieApp.Busy: DoEvents: Loop
    Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
    
    'Capture Amount
    IeApp.Document.getElementById ("conversion-amount") Value = Range ("B2") Value
    IeApp.Document.getElementsByClassName ("chosen-container chosen-container-single") (0) .Click
    IeApp.Document.getElementsByid ("from_currency_chosen") Value = "ETH"
    
    End Sub

这是检查元素标记的内容  <input type="text" autocomplete="off">

提前感谢您的支持

2 个答案:

答案 0 :(得分:0)

我没有得到您发布的元素

我明白了

<div class="chosen-container chosen-container-single" style="width: 104px;" title="" id="from_currency_chosen">
<a class="chosen-single">
<span></span>
<div>
<b>
</b>
</div>
</a>
<div class="chosen-drop">
<div class="chosen-search">
<input type="text" autocomplete="off">
</div>
<ul class="chosen-results">
<li class="group-result">Fiat Currencies</li>
<li class="active-result group-option" data-option-array-xindex="1" style=""> USD </li>
<li class="active-result group-option" data-option-array-index="2" style="">KRW</li>
<li class="active-result group-option" data-option-array-index="3" style="">GBP</li>
<li class="active-result group-option" data-option-array-index="4" style="">AUD</li>
<li class="active-result group-option" data-option-array-index="5" style="">IDR</li>
<li class="active-result group-option" data-option-array-index="6" style="">CAD</li>
<li class="active-result group-option" data-option-array-index="7" style="">INR</li>
<li class="active-result group-option" data-option-array-index="8" style="">JPY</li>
<li class="active-result group-option" data-option-array-index="9" style="">BRL</li>
<li class="active-result group-option" data-option-array-index="10" style="">EUR</li>
<li class="active-result group-option" data-option-array-index="11" style="">CHF</li>
<li class="active-result group-option" data-option-array-index="12" style="">RUB</li>
<li class="active-result group-option" data-option-array-index="13" style="">MXN</li>
<li class="active-result group-option" data-option-array-index="14" style="">CNY</li>
<li class="active-result group-option" data-option-array-index="15" style="">HKD</li>
<li class="group-result">Crypto-Currencies</li>
<li class="active-result group-option" data-option-array-index="17" style="">020LondonCoin (020)</li>
<li class="active-result group-option" data-option-array-index="18" style="">1337 (1337)</li>
<li class="active-result group-option" data-option-array-index="19" style="">1CRedit (1CR)</li>
<li class="active-result group-option" data-option-array-index="20" style="">23 Skidoo (CHAO)</li>
<li class="active-result group-option" data-option-array-index="21" style="">2GIVE (2GIVE)</li>
<li class="active-result group-option" data-option-array-index="22" style="">300 Token (300)</li>
<li class="active-result group-option" data-option-array-index="23" style="">42-coin (42)</li>
<li class="active-result group-option" data-option-array-index="24" style="">808Coin (808)</li>
<li class="active-result group-option" data-option-array-index="25" style="">8Bit (8BIT)</li>
<li class="active-result group-option" data-option-array-index="26" style="">9COIN (9COIN)</li>
<li class="active-result group-option" data-option-array-index="27" style="">Abncoin (ABN)</li>
<li class="active-result group-option" data-option-array-index="28" style="">Aces (ACES)</li>
<li class="active-result group-option" data-option-array-index="29" style="">Acoin (ACOIN)</li>
<li class="active-result group-option" data-option-array-index="30" style="">Adelphoi (ADL)</li>
<li class="active-result group-option" data-option-array-index="31" style="">AdEx (ADX)</li>
<li class="active-result group-option" data-option-array-index="32" style="">AdShares (ADST)</li>
<li class="active-result group-option" data-option-array-index="33" style="">adToken (ADT)</li>
<li class="active-result group-option" data-option-array-index="34" style="">Advanced Internet... (AIB)</li>
<li class="active-result group-option" data-option-array-index="35" style="">Adzcoin (ADZ)</li>
<li class="active-result group-option" data-option-array-index="36" style="">Aeon (AEON)</li>
<li class="active-result group-option" data-option-array-index="37" style="">Aeternity (Pre-La... (AE)</li>
<li class="active-result group-option" data-option-array-index="38" style="">Agoras Tokens (AGRS)</li>
<li class="active-result group-option" data-option-array-index="39" style="">AgrolifeCoin (AGLC)</li>
<li class="active-result group-option" data-option-array-index="40" style="">Alexium (AUM)</li>
<li class="active-result group-option" data-option-array-index="41" style="">Allion (ALL)</li>
<li class="active-result group-option" data-option-array-index="42" style="">AllSafe (ASAFE2)</li>
<li class="active-result group-option" data-option-array-index="43" style="">AlpaCoin (APC)</li>
<li class="active-result group-option" data-option-array-index="44" style="">Alphabit (ABC)</li>
<li class="active-result group-option" data-option-array-index="45" style="">Altcoin (ALT)</li>
<li class="active-result group-option" data-option-array-index="46" style="">AmberCoin (AMBER)</li>
<li class="active-result group-option" data-option-array-index="47" style="">AMIS (AMIS)</li>
<li class="active-result group-option" data-option-array-index="48" style="">Ammo Rewards (AMMO)</li>
<li class="active-result group-option" data-option-array-index="49" style="">AmsterdamCoin (AMS)</li>
<li class="active-result group-option" data-option-array-index="50" style="">AnarchistsPrime (ACP)</li>
<li class="active-result group-option" data-option-array-index="51" style="">Animecoin (ANI)</li>
<li class="active-result group-option" data-option-array-index="52" style="">Anoncoin (ANC)</li>
<li class="active-result group-option" data-option-array-index="53" style="">AntiBitcoin (ANTI)</li>
<li class="active-result group-option" data-option-array-index="54" style="">Antilitecoin (ALTC)</li>
<li class="active-result group-option" data-option-array-index="55" style="">Antimatter (ANTX)</li>
<li class="active-result group-option" data-option-array-index="56" style="">AppleCoin (APW)</li>
<li class="active-result group-option" data-option-array-index="57" style="">APX (APX)</li>
<li class="active-result group-option" data-option-array-index="58" style="">AquariusCoin (ARCO)</li>
<li class="active-result group-option" data-option-array-index="59" style="">Aragon (ANT)</li>
<li class="active-result group-option" data-option-array-index="60" style="">ARbit (ARB)</li>
<li class="active-result group-option" data-option-array-index="61" style="">Arcade Token (ARC)</li>
<li class="active-result group-option" data-option-array-index="62" style="">ArcticCoin (ARC)</li>
<li class="active-result group-option" data-option-array-index="63" style="">Ardor (ARDR)</li>
<li class="active-result group-option" data-option-array-index="64" style="">Argentum (ARG)</li>
<li class="active-result group-option" data-option-array-index="65" style="">Argus (ARGUS)</li>
<li class="active-result group-option" data-option-array-index="66" style="">Aricoin (ARI)</li>
<li class="active-result group-option" data-option-array-index="67" style="">Ark (ARK)</li>
<li class="active-result group-option" data-option-array-index="68" style="">ArtByte (ABY)</li>
<li class="active-result group-option" data-option-array-index="69" style="">Artex Coin (ATX)</li>
<li class="active-result group-option" data-option-array-index="70" style="">Asch (XAS)</li>
<li class="active-result group-option" data-option-array-index="71" style="">AsiaCoin (AC)</li>
<li class="active-result group-option" data-option-array-index="72" style="">Asiadigicoin (ADCN)</li>
<li class="active-result group-option" data-option-array-index="73" style="">AsicCoin (ASC)</li>
<li class="active-result group-option" data-option-array-index="74" style="">Asset Backed Coin (ABC)</li>
<li class="active-result group-option" data-option-array-index="75" style="">ATC Coin (ATCC)</li>
<li class="active-result group-option" data-option-array-index="76" style="">Atmos (ATMS)</li>
<li class="active-result group-option" data-option-array-index="77" style="">Atomic Coin (ATOM)</li>
<li class="active-result group-option" data-option-array-index="78" style="">AudioCoin (ADC)</li>
<li class="active-result group-option" data-option-array-index="79" style="">Augur (REP)</li>
<li class="active-result group-option" data-option-array-index="80" style="">Auroracoin (AUR)</li>
<li class="active-result group-option" data-option-array-index="81" style="">AurumCoin (AU)</li>
<li class="active-result group-option" data-option-array-index="82" style="">AvatarCoin (AV)</li>
<li class="active-result group-option" data-option-array-index="83" style="">Avoncoin (ACN)</li>
<li class="active-result group-option" data-option-array-index="84" style="">AxFunds (AXF)</li>
<li class="active-result group-option" data-option-array-index="85" style="">Axiom (AXIOM)</li>
<li class="active-result group-option" data-option-array-index="86" style="">B3Coin (B3)</li>
<li class="active-result group-option" data-option-array-index="87" style="">BagCoin (BGC)</li>
<li class="active-result group-option" data-option-array-index="88" style="">Bancor (BNT)</li>
<li class="active-result group-option" data-option-array-index="89" style="">Bankcoin (B@)</li>
<li class="active-result group-option" data-option-array-index="90" style="">Basic Attention T... (BAT)</li>
<li class="active-result group-option" data-option-array-index="91" style="">Bata (BTA)</li>
<li class="active-result group-option" data-option-array-index="92" style="">BatCoin (BAT)</li>
<li class="active-result group-option" data-option-array-index="93" style="">BBQCoin (BQC)</li>
<li class="active-result group-option" data-option-array-index="94" style="">BCAP (BCAP)</li>
<li class="active-result group-option" data-option-array-index="95" style="">Beatcoin (XBTS)</li>
<li class="active-result group-option" data-option-array-index="96" style="">BeaverCoin (BVC)</li>
<li class="active-result group-option" data-option-array-index="97" style="">BelaCoin (BELA)</li>
<li class="active-result group-option" data-option-array-index="98" style="">BenjiRolls (BENJI)</li>
<li class="active-result group-option" data-option-array-index="99" style="">BERNcash (BERN)</li>
<li class="active-result group-option" data-option-array-index="100" style="">BestChain (BEST)</li>
<li class="active-result group-option" data-option-array-index="101" style="">BetaCoin (BET)</li>
<li class="active-result group-option" data-option-array-index="102" style="">BigUp (BIGUP)</li>
<li class="active-result group-option" data-option-array-index="103" style="">BillaryCoin (BLRY)</li>
<li class="active-result group-option" data-option-array-index="104" style="">Binance Coin (BNB)</li>
<li class="active-result group-option" data-option-array-index="105" style="">BioBar (BIOB)</li>
<li class="active-result group-option" data-option-array-index="106" style="">BiosCrypto (BIOS)</li>
<li class="active-result group-option" data-option-array-index="107" style="">BipCoin (BIP)</li>
<li class="active-result group-option" data-option-array-index="108" style="">Birds (BIRDS)</li>
<li class="active-result group-option" data-option-array-index="109" style="">Bit20 (BTWTY)</li>
<li class="active-result group-option" data-option-array-index="110" style="">BitAlphaCoin (BAC)</li>
<li class="active-result group-option" data-option-array-index="111" style="">BitAsean (BAS)</li>
<li class="active-result group-option" data-option-array-index="112" style="">BitBar (BTB)</li>
<li class="active-result group-option" data-option-array-index="113" style="">BitBay (BAY)</li>
<li class="active-result group-option" data-option-array-index="114" style="">BitBean (BITB)</li>
<li class="active-result group-option" data-option-array-index="115" style="">bitBTC (BITBTC)</li>
<li class="active-result group-option" data-option-array-index="116" style="">Bitcedi (BXC)</li>
<li class="active-result group-option" data-option-array-index="117" style="">BitCentavo (NBE)</li>
<li class="active-result group-option" data-option-array-index="118" style="">Bitcloud (BTD)</li>
<li class="active-result group-option" data-option-array-index="119" style="">bitCNY (BITCNY)</li>
<li class="active-result group-option" data-option-array-index="120" style="">BitCoal (COAL)</li>
<li class="active-result group-option" data-option-array-index="121" style="">Bitcoin (BTC)</li>
<li class="active-result group-option" data-option-array-index="122" style="">Bitcoin 21 (XBTC21)</li>
<li class="active-result group-option" data-option-array-index="123" style="">Bitcoin Cash (BCH)</li>
<li class="active-result group-option" data-option-array-index="124" style="">Bitcoin Planet (BTPL)</li>
<li class="active-result group-option" data-option-array-index="125" style="">Bitcoin Plus (XBC)</li>
<li class="active-result group-option" data-option-array-index="126" style="">Bitcoin Scrypt (BTCS)</li>
<li class="active-result group-option" data-option-array-index="127" style="">Bitcoin Unlimited... (BTU)</li>
<li class="active-result group-option" data-option-array-index="128" style="">BitcoinDark (BTCD)</li>
<li class="active-result group-option" data-option-array-index="129" style="">BitcoinFast (BCF)</li>
<li class="active-result group-option" data-option-array-index="130" style="">BitcoinTX (BTX)</li>
<li class="active-result group-option" data-option-array-index="131" style="">BitConnect (BCC)</li>

removed data to reduce size


<li class="active-result group-option" data-option-array-index="1069" style="">Zilbercoin (ZBC)</li>
<li class="active-result group-option" data-option-array-index="1070" style="">Zoin (ZOI)</li>
<li class="active-result group-option" data-option-array-index="1071" style="">Zonecoin (ZNE)</li>
<li class="active-result group-option" data-option-array-index="1072" style="">ZrCoin (ZRC)</li>
<li class="active-result group-option" data-option-array-index="1073" style="">ZSEcoin (ZSE)</li>
<li class="active-result group-option" data-option-array-index="1074" style="">Zurcoin (ZUR)</li>
</ul>
</div>
</div>

答案 1 :(得分:0)

常规

我已经使用selenium basic解决了这个问题,尽管使用IE的原理相同。我可以根据要求写。

安装Selenium Basic之后,您需要通过VBE>工具>参考> Selenium类型库添加参考。

  1. 使元素(转换量)可见。隐式等待并不能很好地完成工作
  2. 删除cookie横幅
  3. 使用SendKeys设置金额(AMOUNT
  4. 使用.FindElementById("from_currency_chosen").Click触发from货币的下拉列表
  5. 发送关键字FROM_CURRENCY
  6. 发送密钥以输入
  7. Msgbox转换结果


VBA:

Option Explicit
Public Sub GetInfo()
    Dim d As WebDriver, keys As New Selenium.keys
    Set d = New ChromeDriver
    Const url = "https://coinmarketcap.com/calculator/"
    Const AMOUNT As Double = 1234
    Const FROM_CURRENCY As String = "ETH"

    With d
        .Start "Chrome"
        .get url
        Do
            DoEvents
        Loop While Not .FindElementById("conversion-amount").IsDisplayed
        .FindElementByCss("div.banner-alert-close  > button > span").Click
        .FindElementById("conversion-amount").SendKeys AMOUNT

        .FindElementById("from_currency_chosen").Click
        .FindElementByCss("#from_currency_chosen > div > div > input").SendKeys FROM_CURRENCY
        .FindElementByCss("#from_currency_chosen > div > div > input").SendKeys keys.Return

        MsgBox .FindElementById("conversion-result-value").Text
        .Quit
    End With
End Sub