Как использовать VBA для изменения «проверенного» свойства переключателей на веб-странице

0

Я использую VBA, чтобы позволить Excel перемещаться по некоторым веб-страницам и извлекать из них данные. На одной странице мне нужно изменить, какая из двух переключателей проверена перед продолжением. К сожалению, отдельные переключатели в группе не имеют указанных идентификаторов. Есть ли указатель, назначенный переключателям по умолчанию, который я могу использовать, чтобы определить, какой из них я хочу проверить? Как это сделать в VBA?

Вот исходный код с веб-страницы. Сначала проверяется первый переключатель. Я хочу изменить вторую, чтобы проверить, прежде чем нажать кнопку sbmSearch.

<table class="Searchstyle">
   <tr>
      <td>Search by
         <input type="radio" name="rdoSearchBy" value="Report" checked> Report No or 
      </td>
      <td>
         <input type="radio" name="rdoSearchBy" value="Author"> Author 
      </td>
      <td>
         <input type="submit" name="sbmSearch" value="Search">
      </td>
   </tr>
</table>

Вот мой код VBA:

With oIE ' my InternetExplorer object
   .
   .
   With .Document.all
      '.rdoGiren.Author.Checked = True ' attempt 1 - error
      .getElementsByName("rdoSearchBy")(1).Checked = True ' attempt 2 - error
      .sbmSearch.Click  ' Clicks the Search button
   End With
   Do While .Busy: DoEvents:  Loop
   Do While .ReadyState <> 4: DoEvents: Loop
   .
   .
End With

Я полагаю, что должен быть способ сделать это, я просто не нахожу ответа.

Теги:
excel-vba
excel

1 ответ

0

Вы пробовали видеть, поддерживает ли VBA что-то вроде этого?

    With .Document.all
      .getElementsByClassName("Searchstyle")(0)(1)(0).Checked = True ' attempt 2 - error
      .sbmSearch.Click  ' Clicks the Search button

Таким образом, вы просто прокладываете себе путь по элементам для детей из таблицы.

  • 0
    Гаррет, спасибо за предложение, но я получил ошибку "Объект не поддерживает это свойство или метод" при попытке. Похоже, IE8 не поддерживает метод getElementsByClassName (), и ИТ-отдел связал нас с IE8.
  • 0
    Жаль слышать, что разработка для этих старых версий IE может быть настоящей болью.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню