Я хочу написать макрос в Excel, который будет загружать CSV из веб-приложения, которое я использую для своей работы. В пользовательском интерфейсе веб-приложения вы нажимаете кнопку, чтобы открыть меню, а затем нажимаете кнопку загрузки во всплывающем меню.
Я написал макрос, который должен открыть Inte rnet Окно проводника, затем нажмите кнопку загрузки, чтобы загрузить файл CSV, который я хочу загрузить. Я пока не смог заставить его работать: он открывает браузер на нужной мне веб-странице, но не загружает CSV.
Я получил ниже HTML с помощью "Inspect Element «(Я вырезал части, которые не были актуальны). Обратите внимание на кнопку загрузки в конце.
<body style="overflow: hidden; padding-right: 8px;">
<div role="presentation" class="MuiPopover-root" ... left: 0px;">
<div class="MuiPaper-root MuiMenu-paper MuiPaper-elevation8 MuiPopover-paper
MuiPaper-rounded"… transform-origin: 0px 26px;">
<ul class="MuiList-root MuiMenu-list MuiList-padding" role="menu" tabindex="-1">
...
<a download="FileName.csv" class="downloadLinkButton" target="_self" href="blob:https://exampleURL.com/abcdefg1234">
<li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button"
tabindex="-1" role="menuitem" aria-disabled="false">Export to CSV</li>
</a>
Это код, который я написал, но он не работает:
Dim objIE As InternetExplorer 'special object variable representing the IE browser
Dim aEle As HTMLLinkElement 'special object variable for an <a> (link) element
'initiating a new instance of Internet Explorer and asigning it to objIE
Set objIE = New InternetExplorerMedium
'make IE browser visible (False would allow IE to run in the background)
objIE.Visible = True
'navigate IE to this web page
objIE.navigate "exampleURL.com"
Do While objIE.Busy = True Or objIE.ReadyState <> 4: DoEvents: Loop
Set elements = objIE.Document.getElementsByTagName("a")
For Each ele In elements
If (ele.className = "downloadLinkButton") Then
ele.Click
Exit For
End If
Next ele
Как я уже говорил, этот макрос не Нет ошибки, он просто открывает браузер на нужную мне веб-страницу.
У кого-нибудь есть советы, как мне автоматизировать эту загрузку? Я не очень знаком с тем, как работают URL-адреса BLOB-объектов, но я думаю, что URL-адрес загрузки изменяется. (URL-адреса, которые у меня есть в коде / HTML, явно не являются реальными URL-адресами.)
Спасибо!
Редактировать: Ниже HTML для кнопки, которую нужно нажать развернуть меню, содержащее опцию «Экспорт в CSV». Важная часть начинается в <button class="MuiButtonBase-root MuiIconButton-root"
<div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-8">
<div class="MuiGrid-root MuiGrid-container MuiGrid-direction-xs-column MuiGrid-align-items-xs-flex-end">
<div class="icon-container">
<span class="lastupdated-container…</span>
…
<button class="MuiButtonBase-root MuiIconButton-root" tabindex="0" type="button" id="card-view-more" aria-label="More">
<span class="MuiIconButton-label">
<span class="material-icons MuiIcon-root" aria-hidden="true">more_vert</span>
</span>
</button>
</div>
</div>
</div>