首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用VBA和一个模态窗体操纵IE

用VBA和一个模态窗体操纵IE
EN

Stack Overflow用户
提问于 2017-03-10 22:53:54
回答 1查看 2.5K关注 0票数 1

我正在尝试自动将excel文档上传到特定的网页。我无法链接它,因为它需要帐户。有一个带有浏览区的表单(由于是type=file的,所以我不能简单地设置值)和一个使用该输入值的upload按钮。

我可以导航到单击浏览按钮,也可以单击上载按钮,但是当我单击浏览按钮时,会弹出一个名为“选择要上载的文件”的文件资源管理器窗口,这意味着我不能与任何其他IE窗口交互,并暂停我的VBA代码,直到它关闭,这意味着我不能自动向它传递文件路径。

页面上的相关HTML是

代码语言:javascript
运行
复制
<form method="post" name="uploadSkillForm" ENCTYPE="multipart/form-data"  action='uploadSkills.do?operation=upload'>        

  <tr>

</tr> 

<tr class="text1">

</tr> 


<tr width="100%">
    <td colspan="100%">
        <table width="100%">
            <tr>
                <th align="left" colspan=3 width="60%">
                    <input type="file" name="uploadedFile"  size="34" id="filePath" class="buttonStyle" style="height:20px"/>&nbsp;&nbsp;
                    <input type="button" name="upload" class="buttonStyle" value="Upload" onclick="javascript:fnUploadData()">
                </th>
            </tr>
        </table>
    </td>
</tr>

理想情况下,我只希望能够让VBA保持运行,并与对话框交互以放入文件路径,但任何设置路径值的方法都可以。

VBA目前只是打开网页并点击按钮,所以没有发布它的意义。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 00:00:38

因此,在深入研究之后,我决定只需要让VBA运行一个外部脚本来检查窗口并输入文件名,然后按enter键。目前的问题是,它专注于文件窗口,所以如果你不在正确的文件夹,它不会工作,但如果你在正确的文件夹,它将选择正确的文件,并单击打开!

vba:

代码语言:javascript
运行
复制
Dim retval As Variant
retval = Shell("PowerShell .'" & path & "upload_tester.ps1 file_name'", 1)

其中路径是存储路径的位置,upload_tester.ps1是脚本名,而file_name将传递给脚本以输入到文件浏览器。

脚本:

代码语言:javascript
运行
复制
param(
[Parameter(Mandatory=$true)][string]$a
)

$wshell = new-object -com wscript.shell

while(! $wshell.appactivate("Choose File to Upload")){
start-sleep -milliseconds 100
}

$wshell.appactivate("Choose File to Upload")
start-sleep -milliseconds 500;
$wshell.sendkeys($a)
$wshell.sendkeys("{ENTER}")

这将进行检查,直到文件资源管理器窗口打开,键入与其匹配的文件名,然后按enter将其选中。如果有人知道如何让它专注于文本框部分,而不是文件资源管理器部分,那就太好了,但除此之外,这对我来说是有效的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42721288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档