VBA和DOM填充输入框,在一个框架中(此处代码)

VBA和DOM填充输入框,在一个框架中(此处代码),vba,dom,Vba,Dom,我已经参考了MSHTML库和MS Internet控件设置,我正在尝试使用变量填写表单。主页由3个框架组成,“顶部”框架是我的表单所在的位置。如果我直接与框架对话,下面的代码将起作用,框架中的表单称为“NavPage”。Cnum是我想要添加值的元素的名称,然后单击按钮来检索数字 Dim HTMLDoc2 As MSHTML.HTMLDocument Set HTMLDoc2 = Browser.document HTMLDoc2.forms("NavPage").CNum.Value = "

我已经参考了MSHTML库和MS Internet控件设置,我正在尝试使用变量填写表单。主页由3个框架组成,“顶部”框架是我的表单所在的位置。如果我直接与框架对话,下面的代码将起作用,框架中的表单称为“NavPage”。Cnum是我想要添加值的元素的名称,然后单击按钮来检索数字

Dim HTMLDoc2 As MSHTML.HTMLDocument

Set HTMLDoc2 = Browser.document

HTMLDoc2.forms("NavPage").CNum.Value = "12345" 'will change this to become a variable
HTMLDoc2.forms("Navpage").GetCase.Click

问题是,我如何使用DOM引用第一个顶部框架,因为现在,它不工作,它向我吐出“对象变量或未设置块变量”。感谢您提供的见解,因为关于VB的相关信息不多

您应该能够在第一个框架中引用该文档:

Set HTMLDoc2 = Browser.document.frames(0).document

你在什么环境下工作?VB(Visual Studio)和VBA(MS Office)不一样。我在VBA工作,对不起,我应该澄清一下,好的,在哪个程序中?擅长?Word?我正在使用Excel。我最终打算从单元格A1中提取数字作为变量,然后将其输入表单字段。我现在可以这样做,如果我导航到源框架,但是主框架取决于进入顶部框架的内容。我可以添加一下吗,环顾四周,我认为javascript,他们可以做一些类似“.document.frames(0).form(“name”)(elementname).XXXXX”的事情,但我还没有做到这一点,也没有认识到我的表单。我是个新手,尤其是在与web元素交互方面。这给了我“找不到成员”的感觉。让我问你,索引框架的方法是什么?按索引号和名称?还有,如何计算索引号?索引号应该与框架集的HTML源代码中显示的一样<代码>文档。框架(“框架名称”)。文档也应该有效。这里的一些代码(来自John_w)展示了如何循环遍历框架:我认为框架正在遍历javascript servlet。最终,它带来的是html,所以我想这就是为什么直接链接到框架源代码是有效的,但是从主页链接是无效的。你认为有办法解决这个问题吗?如果是这样的话,你会推荐哪种方式?你有没有尝试过等待一段时间来加载框架中的页面?只要它被加载,你的代码就应该工作……哇,在加入了等待计时器之后,它就工作得非常好。如果你买贝宝,我会给你买一杯啤酒