1

I am trying to use VBA to select from a dropdown list. The HTML code is below

<select name="template" class="chzn-select stdText allow_single_deselect" 
id="template" style="width: 315px; display: none; visibility: visible;" 
onchange="newDoc.doAfterTemplateNew('templateRow',this);" size="3" 
data-automation-id="authorTemplateDropdown" data-placeholder="Choose template...">
   <option></option>
   <option value="1">1. Company_Comment (CC)</option>
   <option value="3">1. Company_Flash (CF)</option>
   <option value="79">1. Company_Report (CR)</option>
   <option value="21">2. Sector_Comment (SC)</option>

Right now I am trying to use:

.document.querySelector("Select[name=template] option[value=1]").Selected = True

However, I am getting error 8070000c. Thank you for the help!

1 Answers1

0

This worked for me. Note quotes around option value attribute

Sub tester()
    'Added reference to Microsoft HTML Object Model
    Dim doc As New HTMLDocument, opt As Object, slct As Object
    
    doc.body.innerHTML = Range("A1").Value 'load HTML from cell for testing

    Set slct = doc.querySelector("select[name=template]")                   'select object
    Set opt = doc.querySelector("select[name=template] option[value='1']")  'option
    
    Debug.Print "before", slct.selectedIndex  ' >> -1
    opt.Selected = True
    Debug.Print "after", slct.selectedIndex   ' >> 1
    
End Sub

HTML in A1:

<select name="template"  id="template"   size="3"  data-placeholder="Choose template...">
   <option></option>
   <option value="1">1. Company_Comment (CC)</option>
   <option value="3">1. Company_Flash (CF)</option>
   <option value="79">1. Company_Report (CR)</option>
   <option value="21">2. Sector_Comment (SC)</option>
</select>
Tim Williams
  • 154,628
  • 8
  • 97
  • 125