如何在Excel中运行网站表单而不必使用Sendkeys?

时间:2016-06-30 14:47:43

标签: html excel vba excel-vba

我正在尝试使用Excel VBA在网站上填写表单。我创建了一个InternetExplorer.Application,导航到页面并使用If UserForm1.TC2.Value = True Then或类似PostCode = objIE.document.getElementsByName("ProjectFile-ProposalAddress-PostCode")(0).Value之类的内容查找了大量数据。

然后,我导航到一个新页面,并使用我以前的数据来填写它。

这就是我遇到麻烦的地方。我想勾选一个复选框'新许可',其代码为;

<form id="document-form">
<div class="generate-form form-horizontal">
<div class="form-group"><label class="col-sm-3 control-label"><span>New Permit</span></label><div class="input col-sm-7">
<div class="checkbox">
<input type="checkbox" data-bind="checked: NewPermit" />
</div></div></div><div class="form-group"><label class="col-sm-3 control-label"><span>Staged Permit</span></label><div class="input col-sm-7">
<div class="checkbox">
    <input type="checkbox" data-bind="checked: StagedPermit" />
</div>

没有名字要锁定。我不是HTML专家,但还有一些代码引用了这个复选框(我认为)

 var model = {  "NewPermit": null,   "StagedPermit": null,  "AmendedPermit": null,

等。

我使用.getElementsByTagName("Span")使用各种.tagName等运行代码循环。以下结果适用于新许可框:

.tagName =跨度

.outerHTML =新许可

.outerText = .innerHTML = .innertext =新许可

.isContentEditable =错误

.tostring = [object HTMLSpanElement]

.ID =“”

这是密码登录的背后,我无法公开发布该链接。但是可以通过PM等来得到答案。

1 个答案:

答案 0 :(得分:3)

使用getElementsByTagName('input'),然后使用Checked = True

Dim element as Object
element = getElementsByTagName('input')
element.Checked = True

假设复选框是页面上唯一的输入元素。如果没有,请进行循环并确定所需的复选框