ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: kwin_zh

[求助] 【急】网页内的文本框没有ID只有Name,如何用VBA输入

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 17:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

这句代码要加在哪里呢?

各位大神:

使用VBA输入数据到网页后,点击提交,提示“”数据为空,请输入“”
可还是我再F8状态下明明看到已经输入名字和手机了,为啥点击搜索后,还会提示我没输入?

以下我的代码:
--------------------------------------------

Sub 自动填写表单()
   On Error Resume Next
     With CreateObject("internetexplorer.application")
         .Visible = True
         .Navigate "https://**********"                                       '打开网站
         Do Until .ReadyState = 4
             DoEvents
         Loop

        .Document.getelementsbyclassname("***")(0).Value = “”张三“”                       '输入学员名字
        .Document.getelementsbyclassname("***")(1).Value = “”“15115115111”          '输入手机号码
        .Document.All.tags("button")(0).Click                                                             '点击搜索
       On Error Resume Next
        .Document.forms(0).submit
     End With

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 17:44 | 显示全部楼层

能不能加个微信,发个红包给您~~^_^

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 17:47 | 显示全部楼层
我加在输入后面,然后提示这个
捕获.PNG

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 18:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-6-20 18:16 | 显示全部楼层
kwin_zh 发表于 2017-6-20 17:47
我加在输入后面,然后提示这个

.parentWindow.execScript "submitMemberSearch()", "JavaScript"

TA的精华主题

TA的得分主题

发表于 2017-6-20 18:17 | 显示全部楼层
  1. Sub 自动填写表单()
  2.    On Error Resume Next
  3.      With CreateObject("internetexplorer.application")
  4.          .Visible = True
  5.          .Navigate "https://**********"                                       '打开网站
  6.          Do Until .ReadyState = 4
  7.              DoEvents
  8.          Loop

  9.         .Document.getelementsbyclassname("***")(0).Value = “”张三“”                       '输入学员名字
  10.         .Document.getelementsbyclassname("***")(1).Value = “”“15115115111”          '输入手机号码
  11.         .Document.parentWindow.execScript "submitMemberSearch()", "JavaScript"                                            '点击搜索
  12.        On Error Resume Next
  13.         .Document.forms(0).submit
  14.      End With

  15. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 21:58 | 显示全部楼层

.Document.parentWindow.execScript "submitMemberSearch()", "JavaScript"

您好,我试了很久,可是就是最后这一步不行,代码放上去后F8测试没有任何反应。我把原来的doc.getelementsbyclassname("***")(0).Click放在您的这行代码后,您代码那一步没反应,到这一步Click后仍旧提示让输入姓名,姓名栏为空。

这个网页的逻辑是【输入姓名-输入手机-点击搜索-查到结果就会显示一个表格,最后一项操作是个录入按钮,俺就提交即可,如果没有查到结果,就会显示其他的,然后点击重置按钮重新输入下一个】

源代码如下:还请大神再帮忙!!!跪谢!
<div class="col-xs-10 right-content">
    <div class="right-content-top">
        <form class="ng-pristine ng-valid">
            <div class="n-search">
                <span>学员姓名:</span><input type="text" class="n-text-ipt n-w120 mr40 ng-pristine ng-valid ng-empty ng-touched" name="realName" ng-model="search.realName">
                <span>手机:</span><input type="text" class="n-text-ipt n-w120 mr40 ng-pristine ng-untouched ng-valid ng-empty" name="mobile" ng-model="search.mobile">
                <button type="button" class="crm-btn" ng-click="submitMemberSearch()"><em class="icon-serch"></em>搜索</button>
                <button type="reset" class="crm-btn-b" ng-click="clearMemberSearch()"><em class="icon-reset"></em>重置</button>
            </div>
        </form>
    </div>
    <!-- ngIf: retMsg==-1 -->
    <!-- ngIf: retMsg==1 -->
    <!-- ngIf: retMsg==2 -->
    <!-- ngIf: retMsg==0 -->
</div>

再感谢!

TA的精华主题

TA的得分主题

发表于 2017-6-20 22:17 | 显示全部楼层
  1.         .Document.getelementsbyclassname("n-text-ipt n-w120 mr40 ng-pristine ng-valid ng-empty ng-touched")(0).Value = ”张三”                       '输入学员名字
  2.         .Document.getelementsbyclassname("n-text-ipt n-w120 mr40 ng-pristine ng-untouched ng-valid ng-empty")(0).Value = “15115115111”
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 22:51 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我就是这么写的  不过名字输入我写的是Document.getelementsbyclassname("n-text-ipt n-w120 mr40")(0).Value = Cells(2, 1).Value                                                    '输入名字
        .Document.getelementsbyclassname("n-text-ipt n-w120 mr40 ng-pristine ng-untouched ng-valid ng-empty")(1).Value = Cells(2, 3).Value         '输入手机

classname和您写的不太一样,不过也能输入上去。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-20 22:57 来自手机 | 显示全部楼层
-----我是分割线--------------------------------
这一部分源代码如下:
<!-- 内容开始 -->
        <link href="https://*******" rel="stylesheet">
<div class="col-xs-10 right-content">
    <div class="right-content-top">
        <form>
            <div class="n-search">
                <span>姓名:</span><input type="text" class="n-text-ipt n-w120 mr40" name="realName" ng-model="search.realName"/>
                <span>手机号:</span><input type="text" class="n-text-ipt n-w120 mr40" name="mobile" ng-model="search.mobile"/>

                <button type="button" class="crm-btn" ng-click="submitMemberSearch()"><em class="icon-serch"></em>搜索</button>
                <button type="reset" class="crm-btn-b" ng-click="clearMemberSearch()"><em class="icon-reset"></em>重置</button>
            </div>
        </form>
    </div>
    <div class="right-content-main bind-main" ng-if="retMsg==-1">
        <div class="m-binded">
            <span><img src="url***" alt=""></span>
            <p>无该学员信息</p>
        </div>
    </div>
    <div class="right-content-main bind-main" ng-if="retMsg==1">
        <div class="m-binded">
            <span><img src="url" alt=""></span>
            <p>该学员已毕业或未入学</p>
        </div>
    </div>
    <div class="right-content-main bind-main" ng-if="retMsg==2">
        <div class="m-binded">
            <span><img src="url" alt=""></span>
            <p>该学员已经注册,无需重复注册</p>
        </div>
    </div>
    <div class="right-content-main" ng-if="retMsg==0">
        <table id="treeTable1" class="cm-table">
            <tr>
                <td class="n-td n-td01">专业方向</td>
                <td class="n-td n-td02">入学时间</td>
                <td class="n-td n-td03">学号</td>
                <td class="n-td n-td04">班级</td>
                <td class="n-td n-td05">操作</td>
            </tr>
            <tr ng-repeat="m in memberList">
                <td class="n-td n-td01">{{m.channelCode}}</td>
                <td class="n-td n-td02">{{m.registerTime | limitTo:10}}</td>
                <td class="n-td n-td03">{{m.fromMemberId>0?x.fromMemberId:"--"}}--</td>
                <td class="n-td n-td04">{{m.fromMemberId>0?"已注册":"--"}}--</td>
                <td class="n-td n-td05"><button class="crm-btn-b" ng-click="bind(m.id)">录入</button></td>
            </tr>
        </table>
    </div>
</div>
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 00:34 , Processed in 0.045563 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表