我是新的VBA,并试图创建一个网页刮刀创建一个报告,从我们的应用程序之一。这是一个供应商创建的环境,但我们拥有数据。我能够导航到网站并拉大我需要的大部分数据;然而,我已经撞上了一堵砖墙,试图拉是否时间是上午或下午。上午或下午是必不可少的,因为我们需要一天24小时的服务,我们得到收费的短通知电话。
HTML代码是:
<td>
<select name="collectionInfoBox:generalInformationBox:agencyNotifiedDate:timeSelector">
<option value="0">AM</option>
<option selected="selected" value="1">PM</option>
</select>
</td>
我的VBA代码是:
set nt = htmlDoc.getElementsByName("collectionInfoBox:generalInformationBox:agencyNotifiedDate:timeSelector")
ws.Cells(1, 7).Value = nt.Item(nt.SelectedIndex).innerText
我发现这个代码是对一个问题的回答,这个问题似乎和我的相似。我得到一个运行时错误'438':对象不支持ws.Cells(1,7).Value行上的此属性或方法。
正如我所说的,我使用VBA才几天,所以任何关于如何实现这一目标的建议都将不胜感激。感谢您的评分
1条答案
按热度按时间bqf10yzr1#
在我的测试中,我不得不使用方法
findElementsByName
,因为getElementsByName
无效?无论如何,如果你将结果的评估更改为= nt.item(1).Value
,你将得到零或一。0是AM,1是PM。另外请注意,对象nt
是一个列表,它可能有零个或更多的结果。您的规范看起来只会得到一个结果。但为了确保这一点,您应该始终检查nt.count
是否为零或更大,并处理该结果。如果您不知道所选内容的静态文本,也可以执行此操作