按名称获取元素在excel vba中不起作用

按名称获取元素在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=

这是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=''> 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。请允许您的问题澄清问题的确切原因。