я пишу макрос, чтобы попытаться автоматизировать очень утомительное ежемесячное задание, оно включает в себя вход на веб-сайт, загрузку файла CSV, а затем некоторую очистку и перегруппировку перед загрузкой его в базу данных.
Я застрял в одной очень специфической c части процесса и перепробовали несколько решений, но не могут заставить его работать, определенно определяя и нажимая кнопку, которая создает файл загрузки,
Это HTML для кнопки Мне нужно получить доступ -
<button class="btn btn-primary btn-xs" type="button" data-toggle="modal" data-target="#download_modal" data-licenceno="33872" data-dfname="Care & Nursing Homes Master" data-dfid="1001">Create a new file containing all records</button>
Это то, что у меня есть, оно работает до тех пор, пока для каждого l oop в подпрограмме загрузки файла, в настоящее время я просто пытаюсь определить кнопку так, Я могу щелкнуть по нему, но он ничего не идентифицирует с этим классом, несмотря на то, что имя класса точно скопировано из HTML, никаких ошибок, но также ничего не записывается в непосредственное окно, я не могу найти какой-либо способ доступа к кнопке поэтому любая помощь будет оценена.
Option Explicit
Sub Opensite()
'open caredata URL and login
Dim IEapp As Object, WebURL As String, HTMLdoc As HTMLDocument
Set IEapp = CreateObject("InternetExplorer.Application")
WebURL = "URL"
With IEapp
.silent = True
.Visible = True
.Navigate WebURL
Do Until IEapp.readyState = 4
DoEvents
Loop
Set HTMLdoc = IEapp.document
End With
With HTMLdoc.forms(0)
.UserName.Value = "myusername"
.Password.Value = "mypassword"
.btn_signin.Click
End With
downloadfile IEapp, HTMLdoc
End Sub
Private Sub downloadfile(IE As Object, HTML_doc As HTMLDocument)
'download CSV file
Dim o As Object, i As Object
Do Until IE.readyState = 4
DoEvents
Loop
Set o = IE.document.getElementsByClassName("btn btn-primary btn-xs")
For Each i In o
Debug.Print i.innerHTML
Next i
End Sub