我试图在excel VBA的IE元素(输入)上输入一个数字,但是,它不起作用,我不是HTML开发人员,但是有一些框架代码可能会影响我的问题,这就是什么我在VBA中很简单:
IE.Navigate "http://thisandthat/herewego.asp"
IE.Document.getElementsbyId("txt_cod_re_rh").Value = "aaaa"
但没有任何反应,我也尝试获取元素ID或测试VBA是否可以看到它,但看起来VBA无法在页面上找到它(尝试过ID和类):
Set element = Document.getElementByclass("select_st")
ThisWorkbook.Sheets(1).Range("b1").Value = element
这是我的HTML:
<SCRIPT LANGUAGE="VBS">
smthing
</SCRIPT>
<HTML>
<HEAD>
<link href="../css/standard.css" rel="stylesheet" type="text/css">
<script language="JavaScript" src="include/scripts.js"></script>
<script language="JavaScript">
function exibeRelatorierer(server) {
d = window.document.frmFilter;
var cod_VP = d.cbo_VP;
var cod_periodo = d.cbo_Periodoerer;
var cod_re_rh = d.txt_cod_re_rh;
if (cod_re_rh.value == '') {
cod_re_rh.value = "0";
}
if (cod_periodo.value == -1) {
alert("Select smthing.");
}else{
if (d.TC[0].checked) {
parent.frames['frmMain'].location = servidor234234 + "RPT_CPR01884_TS" + "&rc:Area=Toolbar&rc:LinkTarget=frmMain&rc:JavaScript=True&rs:ClearSession=true&rc:Parameters=false" + "&COD_VP=" + cod_VP.value + "&COD_PERIODO=" + cod_periodo.value + "&COD_RE_RH=" + cod_re_rh.value
} else {
parent.frames['frmMain'].location = servidor234234 + "RPT_CPR01884_CP" + "&rc:Area=Toolbar&rc:LinkTarget=frmMain&rc:JavaScript=True&rs:ClearSession=true&rc:Parameters=false" + "&COD_VP=" + cod_VP.value + "&COD_PERIODO=" + cod_periodo.value + "&COD_RE_RH=" + cod_re_rh.value
}
我相信上面的代码让我搞砸了试图将值插入txt_cod_re_rh,我读了一些关于框架的内容?这个元素在另一个框架上吗? (不知道,真的......)
这是输入框所在的代码:
<form id="Form1" name="frmFiltro">
<table border="0" width="100%" cellpadding="0" cellspacing="0">
<tr class="table_bhoras1" height="50" align="center">
<td>Extração</td>
</tr>
</table>
<table id="Table3" cellSpacing="0" cellPadding="0" width="100%" border="0" class="titsemlink2">
<TR class="titsemlink2">
<td>
Inform number:
</td>
<td>
<input class="select_st" type="text" name="txt_cod_re_rh" id="txt_cod_re_rh" value="" />
</td>
</TR>
有什么想法吗?我已经睡了4天了!
答案 0 :(得分:2)
您的代码中存在拼写错误。 VBA中的.getElementsbyId
文档对象中不存在getElementByclass
或InternetExplorer
方法。
您可以通过元素id
尝试此操作:
Set element = IE.Document.getElementById("txt_cod_re_rh")
element.value = "aaaa"
或通过classname
:
Set element = IE.Document.getElementsByClassName("select_st")(0)
element.value = "aaaa"
如果它位于iframe
之内,那么完整的html很难判断。