Vba 是否有方法在显示HTML的网页上输入值?

Vba 是否有方法在显示HTML的网页上输入值?,vba,webautomation,Vba,Webautomation,我正在尝试通过web自动化输入一个值。我可以在屏幕截图中用HTML输入值吗 Set objinputs = objIE.document.getElementsByTagName("input") For Each ele In objinputs If ele.Class Like "css-9hvios-Input-textInputBaseClass e1tcuc7s0" Then ele.Value = ws.Range("A1").Value End

我正在尝试通过web自动化输入一个值。我可以在屏幕截图中用HTML输入值吗

Set objinputs = objIE.document.getElementsByTagName("input")

For Each ele In objinputs
    If ele.Class Like "css-9hvios-Input-textInputBaseClass e1tcuc7s0" Then
        ele.Value = ws.Range("A1").Value
    End If
Next
这里是HTML的一小段
您的代码:

您想要的是
className
而不是
class
。您可以像一样使用
,但在成功后,您可能需要退出

For Each ele In objinputs
    If ele.ClassName Like "css-9hvios-Input-textInputBaseClass e1tcuc7s0" Then
        ele.Value = ws.Range("A1").Value
        Exit For
    End If
Next

备选方案:

假设您想将第一个
input
元素与该类名匹配,那么如果您使用css,则效率更高,速度更快:

不需要循环。点“.”是类选择器,后跟类名


改进:

您可以通过删除前导(
输入
)来缩短

您可以通过删除其中一个复合类名(原始类名中的空格表示存在多个类)来进一步缩短。在css中,您可以通过用点替换空格来连接这些类

objIE.querySelector(".css-9hvios-Input-textInputBaseClass").value =ws.Range("A1").Value

类名称看起来是动态的,因此您可能需要位置匹配。

您的代码:

您想要的是
className
而不是
class
。您可以像
一样使用
,但是您可能希望在成功后退出

For Each ele In objinputs
    If ele.ClassName Like "css-9hvios-Input-textInputBaseClass e1tcuc7s0" Then
        ele.Value = ws.Range("A1").Value
        Exit For
    End If
Next

备选方案:

假设您想将第一个
input
元素与该类名匹配,那么如果您使用css,则效率更高,速度更快:

不需要循环。点“.”是类选择器,后跟类名


改进:

您可以通过删除前导(
输入
)来缩短

您可以通过删除其中一个复合类名(原始类名中的空格表示存在多个类)来进一步缩短。在css中,您可以通过用点替换空格来连接这些类

objIE.querySelector(".css-9hvios-Input-textInputBaseClass").value =ws.Range("A1").Value

类名称看起来是动态的,但是您可能需要位置匹配。

没有屏幕截图。此外,请使用代码片段工具via插入相关html而不是屏幕截图。没有屏幕截图。此外,请使用代码片段工具via插入相关html而不是屏幕截图。下面是带有t的html图片he hight是我试图访问的元素[1]:首先尝试上面的内容这是一张HTML的图片,其中hight是我试图访问的元素[1]:首先尝试上面的内容