【发布时间】:2014-11-03 03:40:06
【问题描述】:
下午好!
我正在尝试运行一个宏来打开一个网站,登录,在菜单中选择一个选项,填写一个文本框并单击另一个按钮。
到目前为止,我可以打开网站,登录,选择菜单中的选项,但我无法以任何方式填充文本框。该文本框有一个文本掩码:
格式:00000-000 类型:数字 最大字符:8 最小字符:8
Sub SAVE()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.StatusBar = "Searching"
Sheets("WEB").Visible = True
Dim IE As New InternetExplorer
Dim WshShell As Object
Dim dtInicio As Date
Dim objIE As New DataObject
Sheets("SAVE").Select
Sheets("SAVE").Cells.Clear
S = 2
V = 2
SALVA = 0
Do While Sheets("Adress").Cells(V, 2) <> ""
IE.Visible = True
Sheets("WEB").Select
ActiveWindow.SelectedSheets.Delete
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = "WEB"
'OPEN URL
IE.navigate "URL HERE"
While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
Sleep (1000)
DoEvents
Wend
IE.Document.forms(0).pUsrLg.Value = "user"
IE.Document.forms(0).pUsrSn.Value = "password"
IE.Document.parentWindow.execScript "login();"
While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
Sleep (1000)
DoEvents
Wend
IE.Document.parentWindow.execScript "enviaPage('mod_pesquisa/DisponibilidadeNaoClientes.asp', 'GET', 'True', 'dv_pagina', 'pUsrId=0000050007', 'True', 389, 892);"
While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
Sleep (1000)
DoEvents
Wend
我必须填写的输入如下所示:
<input name="pCepNr" id="pCepNr" type="text" class="st_cxt_01" style="height: 20px; width: 85px; background-color: #FFEEDD; color: #913A1A;">
【问题讨论】:
-
您是如何尝试填写文本框的?
IE.Document.getelementbyid("pCepNr").value = "BLAH"是不设置值还是不显示? -
其实我已经尝试了很多方法来设置它,到目前为止都没有奏效。正如你所说,我已经尝试过了,但它会导致“运行时错误 91”。
-
当你
Debug.Print这个值时会发生什么?这会返回相同的错误吗?你甚至可以Set一个该元素的对象吗? -
是的,它返回相同的错误,我不知道我是否可以为该对象设置一个元素,我该如何检查它?对不起,我不是程序员,呵呵只是想让它工作..所以我对 VBA 了解不多..但我觉得奇怪的是,正如你所看到的,我可以填写其他 2 个输入表单(pUsrLg 和 pUsrSn)很好,它们具有相同的类和所有.. 我能注意到的唯一区别是文本掩码。
-
该元素在您执行的最后一个脚本之前是否存在?
标签: javascript html vba internet-explorer excel