按名称获取元素在excel vba中不起作用
这是HTML代码:按名称获取元素在excel vba中不起作用,excel,vba,Excel,Vba,这是HTML代码: <table> <tr><td>Date:</td><td><input type='text' name='d' value=''><br>(Example: Oct. 8)</td></tr> <tr><td>Teams:</td><td><input type='text' name='away' value=
<table>
<tr><td>Date:</td><td><input type='text' name='d' value=''><br>(Example: Oct. 8)</td></tr>
<tr><td>Teams:</td><td><input type='text' name='away' value=''> at <input type='text' name='home' value=''><br>(Example: Florida at Buffalo)</td></tr>
<tr><td>Time:</td><td><input type='text' name='t' value=''><br>(Example: 7:00 PM)</td></tr></table><br><input type='submit' value='Submit'>"
日期:
(示例:10月8日)
团队:位于
(示例:佛罗里达州布法罗)
时间:
(示例:晚上7:00)
“
我使用此代码来:
Sub extractdata()
Dim x As Long
Dim objie As Object
Set objie = CreateObject("internetexplorer.application")
objie.Top = 0
objie.Left = 0
objie.Width = 800
objie.Height = 600
objie.Visible = True
objie.navigate "http://www.dailynhlgoalies.com/loadSchedule.php"
x = 1
Dim aloha As String
Dim aloha1 As String
Dim aloha2 As String
Dim aloha3 As String
aloha = Sheet1.Range("A" & x).Value
aloha1 = Sheet1.Range("B" & x).Value
aloha2 = Sheet1.Range("C" & x).Value
aloha3 = Sheet1.Range("D" & x).Value
Application.Wait (Now + #12:00:02 AM#)
Do
DoEvents
If Err.Number <> 0 Then
objie.Quit
Set objie = Nothing
GoTo the_start:
End If
Loop Until objie.readyState = 4
objie.document.getelementbyname("d").Value = aloha
objie.document.getelementbyname("away").Value = aloha1
objie.document.getelementbyname("home").Value = aloha2
objie.document.getelementbyname("t").Value = aloha3
End Sub
Sub-extractdata()
暗x等长
模糊对象
Set objie=CreateObject(“internetexplorer.application”)
objie.Top=0
左=0
对象宽度=800
物体高度=600
objie.Visible=True
objie.navigate“http://www.dailynhlgoalies.com/loadSchedule.php"
x=1
暗阿洛哈为弦
Dim aloha1作为字符串
Dim aloha2 As字符串
Dim aloha3 As字符串
aloha=Sheet1.范围(“A”&x).值
aloha1=Sheet1.范围(“B”&x).值
aloha2=Sheet1.范围(“C”&x).值
aloha3=Sheet1.范围(“D”&x).值
申请。等待(现在上午12:00:02)
做
多芬特
如果错误号为0,则
objie,退出
设置对象=无
转到_开始:
如果结束
循环直到objie.readyState=4
objie.document.getelementbyname(“d”).Value=aloha
objie.document.getelementbyname(“离开”).Value=aloha1
objie.document.getelementbyname(“home”).Value=aloha2
objie.document.getelementbyname(“t”).Value=aloha3
端接头
但它不起作用它是
getElementsByName
(注意“s”),它返回匹配元素的集合,而不是单个元素,因此您应该执行以下操作:
objie.document.getelementsbyname("d")(0).Value = aloha
例如您在第行关闭应用程序
objie.Quit
Set objie = Nothing
以后再尝试使用它
objie.document.getelementbyname("d").Value = aloha
由于关闭IE并将指针设置为Nothing,因此出现错误
此外,没有getelementbyname,只有getelementSbyname,它返回一个集合,因此您应该编写:
objie.document.getelementsbyname("d")(0).Value = aloha
日期:
(示例:10月8日)团队:时间:
(示例:佛罗里达州布法罗市)时间:
(示例:下午7:00)
这是html代码请格式化(并缩进!)您的代码,并将html添加到问题中。注释不用于代码或html源代码。另外,“不工作”“不是对您的问题的有用描述。你有错误吗?如果是,它是什么?在哪一行?当代码到达objie.document.getelementbyname(“d”).Value=a时,我得到了运行时错误438。请允许您的问题澄清问题的确切原因。