Vba 从Internet Explorer获取数据
我正在学习如何从Internet Explorer中提取源数据。我从YouTube上学会了如何编写代码。然而,当我想修改它来测试另一个网站时,我遇到了一个错误。有人能给我建议吗 测试网站:Vba 从Internet Explorer获取数据,vba,excel,Vba,Excel,我正在学习如何从Internet Explorer中提取源数据。我从YouTube上学会了如何编写代码。然而,当我想修改它来测试另一个网站时,我遇到了一个错误。有人能给我建议吗 测试网站: 子单击表单按钮() 模糊的物体 变光窗体为变型,按钮为变型 设置ie=CreateObject(“InternetExplorer.Application”) input1=InputBox(“请输入关键字”) 与ie .Visible=True .导航(“http://www.oxforddictionar
子单击表单按钮()
模糊的物体
变光窗体为变型,按钮为变型
设置ie=CreateObject(“InternetExplorer.Application”)
input1=InputBox(“请输入关键字”)
与ie
.Visible=True
.导航(“http://www.oxforddictionaries.com")
而ie.ReadyState 4
多芬特
温德
ie.document.getelementsbyname(“q”).Item.innertext=input1
Set form=ie.document.getElementsbytagname(“表单”)
设置按钮=表单(0)。onsubmit
表格(0)。提交
在忙的时候做
Set TDelements=.document.getElementsbytagname(“td”)
r=0
c=0
对于TDelements中的每个TDelement
表1.范围(“A1”).偏移量(r,c).值=TDelement.innertext
r=r+1
下一个
以
设置ie=无
端接头
虽然您对收到的错误不是很明确,但在我看来,首先会给您带来问题的是您使用getElementsByName()
的方式
getElementsByName()
返回具有指定的名称
属性值的节点集合,在您的示例中是name=“q”
。对于要与之交互的页面,有两个节点包含name=“q”
,您可以使用以下语句进行验证:
MsgBox ie.document.getElementsByName("q").length ' => Reports "2"
找到的第一个节点似乎是移动用户的搜索框。第二个是桌面用户的搜索框。因此,如果要更改其中一个节点的innerText
,则需要按索引寻址单个节点:
Dim e
Set e = ie.document.getElementsByName("q")(0) ' Get first instance
Set e = ie.document.getElementsByName("q")(1) ' Or, get second instance
e.innerText = "some text"
然而,这就引出了你的下一个问题。这些元素是
元素,因此设置innerText
对您没有任何好处。我猜您要做的是设置它们的值
,您可以这样做:
Set e = ie.document.getElementsByName("q")(1) ' Get desktop search box
e.Value = "some text"
虽然您对接收到的错误不是很明确,但在我看来,首先会给您带来问题的是您使用
getElementsByName()
的方式
getElementsByName()
返回具有指定的名称
属性值的节点集合,在您的示例中是name=“q”
。对于要与之交互的页面,有两个节点包含name=“q”
,您可以使用以下语句进行验证:
MsgBox ie.document.getElementsByName("q").length ' => Reports "2"
找到的第一个节点似乎是移动用户的搜索框。第二个是桌面用户的搜索框。因此,如果要更改其中一个节点的innerText
,则需要按索引寻址单个节点:
Dim e
Set e = ie.document.getElementsByName("q")(0) ' Get first instance
Set e = ie.document.getElementsByName("q")(1) ' Or, get second instance
e.innerText = "some text"
然而,这就引出了你的下一个问题。这些元素是
元素,因此设置innerText
对您没有任何好处。我猜您要做的是设置它们的值
,您可以这样做:
Set e = ie.document.getElementsByName("q")(1) ' Get desktop search box
e.Value = "some text"
你能告诉我们错误是什么吗?请编辑您的问题并包含错误。错误是运行时错误“91”:对象变量或未设置块变量。您能告诉我们错误是什么吗?请编辑问题并包含错误。错误为运行时错误“91”:未设置对象变量或带块变量