【发布时间】:2020-03-22 13:53:28
【问题描述】:
VBA 水平较差,我在此问题上寻求您的专业知识,但没有成功地遍历了与我类似的各种主题。 实际上,我想从网站(或文档管理系统)下载 .xlsx 文件。 站点链接如下:https://www.mezzoteam.com/login.aspx,需要认证。
以下代码用于通过连接参数连接到网站并访问包含要下载的文件的页面:
Sub GetTable_GED()
'Renseigner le lien de la page de connexion et la page du taleau à récupérer
Const cURL = "https://www.mezzoteam.com/login.aspx?ReturnUrl=%2flayout_documents.aspx"
Const cURL2 = "https://www.mezzoteam.com/window_document.aspx?&wsfromlink=22e58a2a-fa83-4462-9b30-1768498b67e6&id=ffc12ca9-1333-4b35-b5eb-7d3857f00b70"
Dim IE As InternetExplorer
Dim Doc As HTMLDocument
Dim LoginForm As HTMLFormElement
Dim objElement As Object
Dim objCollection As Object
'Créer une nouvelle fenetre dans le navigateur
Set IE = New InternetExplorer
'Activer le débogage de la page
IE.Visible = True
'Lancer la page
IE.navigate cURL
'Chargement initial de la page
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Set Doc = IE.document
'Identifier la structure de la page
Set LoginForm = Doc.forms(0)
'Remplir les paramètres de connexion de type username, password
'input name="ctl00$body$userName" id="ctl00_body_userName" class="form-control" placeholder="email@example.com" autocomplete="username" type="email"
'<input name="ctl00$body$password" type="password" id="ctl00_body_password" class="form-control" autocomplete="current-password">
With Doc
.getElementById("ctl00_body_userName").Value = "xxxxxxxx@xxxx.com"
.getElementById("ctl00_body_password").Value = "xxxxxxx"
'Executer en cliquant le bouton de connexion
'<input type="submit" name="ctl00$body$LoginButton" value="Se connecter" id="ctl00_body_LoginButton" class="btn btn-block btn-primary">
.getElementsByName("ctl00$body$LoginButton")(0).Click
End With
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
'Maintenant, allons dans la page où se trouve le tableau à récupérer
IE.navigate cURL2
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Set objElement = IE.document
With objElement
'<button id="ctl00_BodyPlaceHolder_actionsbar_download" type="button" value="download" class="btn btn-primary"><span id="ctl00_BodyPlaceHolder_actionsbar_download_label">Télécharger</span> </button>
.getElementById("ctl00_BodyPlaceHolder_actionsbar_download").Click **click buton to download file**
End With
End Sub
'''
在这个阶段,下载不运行!我有这个消息错误:
代码.getElementById("ctl00_BodyPlaceHolder_actionsbar_download").Click中的“执行错误438:属性或方法不受此对象管理”
我的需要:下载这个 .xlsx 文件并在活动工作表中打开它。
我还在图片中附上了文件的目标页面,以及突出显示要下载的文件的 HTML 代码。
HTML code page where file contains
最好的问候,
【问题讨论】: