【发布时间】:2017-07-31 23:16:17
【问题描述】:
我正在尝试自动将 Excel 文档上传到特定网页。我无法链接它,因为它需要一个帐户。有一个带有浏览部分的表单(类型=文件,所以我不能只设置值)和一个使用该输入值的上传按钮。
我可以导航到单击浏览按钮,也可以单击上传按钮,但是当我单击浏览按钮时,会弹出一个名为“选择要上传的文件”的文件浏览器窗口,这意味着我无法与任何其他人进行交互IE 窗口并暂停我的 VBA 代码,直到它关闭,这意味着我无法自动将文件路径传递给它。
页面上的相关HTML是
<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"/>
<input type="button" name="upload" class="buttonStyle" value="Upload" onclick="javascript:fnUploadData()">
</th>
</tr>
</table>
</td>
</tr>
理想情况下,我只是希望能够保持 VBA 运行并与对话框交互以放入文件路径,但是任何将值设置为路径的方法都可以。
VBA 目前只是打开网页并单击按钮,因此没有必要发布它。
任何帮助将不胜感激!
【问题讨论】:
-
很多年前我刚开始开发时就遇到了这个问题。我通过创建一个简单的程序解决了这个问题,该程序的唯一目的是监视该弹出窗口是否出现然后将其杀死。这不是最好的解决方法,但 100% 有效。希望对您有所帮助。
-
@Mickers 不会放在文件路径中吗?我是否必须从 VBA 运行脚本,并将路径作为参数,才能做到这一点?
-
对不起,我错过了你问题的那一部分。在我看来,那个按钮只是激活了模态,而模态本身调用了一个函数并传递了文件路径。这已经很长时间了,但我记得 VBA 有一些方法可以执行 javascript。在您杀死窗口后,我会找到要调用的函数并尝试从 vba 执行该函数。抱歉,我不能提供更多帮助。
-
经过快速搜索,我找到了一个如何从 vba vbaexpress.com/forum/… 调用 js 函数的示例。希望对您有所帮助。
标签: html excel vba internet-explorer modal-dialog