【问题标题】:VBA IE Onclick Function CallVBA IE Onclick 函数调用
【发布时间】:2016-03-04 15:41:03
【问题描述】:

同学们,

我试图用 VBA 进行 IE 自动化。在我遇到这个问题之前,一切都按我的意愿进行。 Enter item no in a input text filed, and then click on link 'RUN Report' to get the report.

问题:点击“运行报告”后,没有为我在文本字段中输入的项目编号提取报告。但是数据库中所有项目的报告。

可能的原因: 链接中有一个onclick函数,我不确定执行“IE.Doucument.getElementById(runReportID).Click”时是否调用了这个函数。我还尝试了“IE.Document.getElementById(runReportID).FireEvent("onclick")”和“IE.Document.parentWindow.execScript("return ValidateDate();", "JavaScript ")",不幸的是,他们没有工作。

当单击“运行报告”按钮时,我不知道如何将我在文本字段中输入的值传递给函数。提交的文本中有事件来完成这项工作吗?

链接“运行报告”和文本字段的 HTML 代码:

<A onclick="return ValidateDate();" id=spsCtrlDefault_ctl02_lbtn_run_qry_rpt title="Click to run report" style="CURSOR: hand; TEXT-DECORATION: none; HEIGHT: 14px; FONT-FAMILY: ariel; FONT-WEIGHT: bold; COLOR: #0033ff" href="javascript:__doPostBack('spsCtrlDefault$ctl02$lbtn_run_qry_rpt','')">[ Run Report ]</A>
<input id="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code" name="spsCtrlDefault$ctl02$gvQueryColumns$ctl02$txtItem_Code" size="20" class="riTextBox riEnabled" type="text" req_ind="N" tbl_idn="2" value="947519" controltype="text" datatype="varchar" col_idn="1" dbfld="item_revision.item_cde" style="text-transform: uppercase;">
<input id="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code_ClientState" name="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code_ClientState" type="hidden" autocomplete="off" value="{&quot;enabled&quot;:true,&quot;emptyMessage&quot;:&quot;&quot;,&quot;validationText&quot;:&quot;TESTVALUE&quot;,&quot;valueAsString&quot;:&quot;TESTVALUE&quot;}">

链接点击的VBA代码:

IE.Document.getElementById(runReportID).Click

【问题讨论】:

    标签: vba ie-automation


    【解决方案1】:

    我终于明白了!!!

    那里有一个隐藏的文本输入元素来捕获我在文本字段中输入的值。每次文本字段失去焦点时,文本字段中的值都会被发送到下面隐藏的输入元素。

    <input id="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code_ClientState" name="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code_ClientState" type="hidden" autocomplete="off" value="{&quot;enabled&quot;:true,&quot;emptyMessage&quot;:&quot;&quot;,&quot;validationText&quot;:&quot;TESTVALUE&quot;,&quot;valueAsString&quot;:&quot;TESTVALUE&quot;}">
    

    向隐藏输入元素发送值的VB代码:

    queryID = "spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code"
    IE.Document.getElementById(queryID).FireEvent ("onblur")
    

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 2023-01-29
      • 2020-08-21
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      相关资源
      最近更新 更多