使用Excel VBA使用getElementById搜索网站

使用Excel VBA使用getElementById搜索网站,excel,vba,internet-explorer,Excel,Vba,Internet Explorer,我试图通过在手机上写下我想搜索的内容来搜索某个网站 我找不到getElementById搜索框的ID 当我按F12键并转到此搜索框时,我可以获得名称、平铺、对齐、类别、样式、onkeyup、OnPropertyChange、类型和大小 代码如下: Dim objIE as Object Set objIE = CreateObject("internetexplorer.application") objIE.Visible = True objIE.navigate "https://....

我试图通过在手机上写下我想搜索的内容来搜索某个网站

我找不到getElementById搜索框的ID

当我按F12键并转到此搜索框时,我可以获得名称、平铺、对齐、类别、样式、onkeyup、OnPropertyChange、类型和大小

代码如下:

Dim objIE as Object
Set objIE = CreateObject("internetexplorer.application")
objIE.Visible = True
objIE.navigate "https://......."
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
OBJIE.doxument.getElementsByName("txtNumber")(0).Value = "ajwh"
Dim objIE作为对象
Set objIE=CreateObject(“internetexplorer.application”)
objIE.Visible=True
objIE.navigate“https://......."
Do While objIE.Busy=True或objIE.readyState 4:DoEvents:Loop
OBJIE.doxument.getElementsByName(“txtNumber”)(0.Value=“ajwh”

错误在getElement行中。

您说过可以找到该搜索框的名称。因此,您应该尝试使用VBA代码中的名称访问它

下面是VBA代码示例:

Sub demo()
    Dim IE As Object
    Dim ws As Worksheet

    Set IE = CreateObject("InternetExplorer.Application")
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    IE.Visible = True
    IE.Navigate ("C:\Users\Administrator\Desktop\search_demo1.html")
     Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop

    IE.document.getElementsByName("search2")(0).Value = ws.Range("A1").Value2
    IE.document.getElementById("submit").Click

End Sub
示例HTML代码:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body {
  font-family: Arial;
}

* {
  box-sizing: border-box;
}

form.example input[type=text] {
  padding: 10px;
  font-size: 17px;
  border: 1px solid grey;
  float: left;
  width: 80%;
  background: #f1f1f1;
}

form.example button {
  float: left;
  width: 20%;
  padding: 10px;
  background: #2196F3;
  color: white;
  font-size: 17px;
  border: 1px solid grey;
  border-left: none;
  cursor: pointer;
}

form.example button:hover {
  background: #0b7dda;
}

form.example::after {
  content: "";
  clear: both;
  display: table;
}
#lbl
{
    color: red;
}
</style>
<script>
function search()
{
    var div = document.getElementById('lbl');
    var div1 = document.getElementsByName('search2')[0].value;

div.innerHTML += 'Searching the results for '+ div1;
}
</script>
</head>
<body>

<h2>Sample Test</h2>
  <input type="text" placeholder="Search.." name="search2" value="">
  <button type="submit" onclick="search()"><i class="fa fa-search"></i></button><br>
  <div id=lbl></div>
</body>
</html> 

身体{
字体系列:Arial;
}
* {
框大小:边框框;
}
form.example输入[类型=文本]{
填充:10px;
字号:17px;
边框:1px纯灰;
浮动:左;
宽度:80%;
背景#f1f1;
}
form.example按钮{
浮动:左;
宽度:20%;
填充:10px;
背景:2196F3;
颜色:白色;
字号:17px;
边框:1px纯灰;
左边界:无;
光标:指针;
}
form.example按钮:悬停{
背景:#0b7dda;
}
form.example::after{
内容:“;
明确:两者皆有;
显示:表格;
}
#lbl
{
颜色:红色;
}
函数搜索()
{
var div=document.getElementById('lbl');
var div1=document.getElementsByName('search2')[0]。值;
div.innerHTML+='搜索'+div1'的结果;
}
样品试验

输出:


欢迎来到SO。请分享到目前为止您编写的代码,以及您感兴趣的HTML代码片段或相应网页的url。另外,请记住,并非HTML文档中的所有元素都有ID。您可能需要使用不同的方法。谢谢。现在他给我写了个错误。未设置对象变量或带黑色变量。请尝试提供详细信息,如您在哪一行出现此错误,以及您是否对此代码进行了必要的更改以在您的一侧运行此错误?如果可能的话,请尝试用你在网站上测试的示例代码编辑原始帖子。这一行有拼写错误。OBJIE.doxument.getElementsByName。应该是OBJIE.document在我的真实代码中,我拼对了。我没有复制并粘贴它,因为我是从我的手机而不是从我的电脑上写的。你能发布完整的错误信息吗?这可能有助于正确理解它?