Я работаю над скриптом, который автоматически загружает Excel из URL. Проблема, с которой я сталкиваюсь, заключается в том, что время, после которого появляется диалоговое окно, не исправлено, поэтому я не могу записать время ожидания. Мне нужен код, который будет ждать появления диалогового окна, а затем нажмите кнопку «Сохранить как». Заранее спасибоПодождите, пока в VBA не появится диалоговое окно загрузки
ответ
Спасибо, что нашли время и ответили на мой вопрос.
Наконец-то я выясню, как работать над этим. Я использовал приведенный ниже код.
Dim website
website = "http://yoursite.com"
With IE
.Visible = True
.navigate website
End With
Application.Wait (Now + TimeValue("0:00:02"))
Cells(1, 1) = GetTitle
var = CheckTitle(Cells(1, 1))
Do While var = False
Cells(1, 1) = GetTitle
var = CheckTitle(Cells(1, 1))
Loop
Cells(1, 1) = ""
Функция GetTitle()
Dim ActiveWindowHandle As Long
'get the handle of the active window
ActiveWindowHandle = GetForegroundWindow()
Dim Title As String * 255
' get the title of the active window
GetWindowText ActiveWindowHandle, Title, Len(Title)
'MsgBox myString
GetTitle = Trim(Title)
End Function
Функция CheckTitle (checkval As String) As Boolean
If checkval <> "Internet Explorer" Then
CheckTitle = False
Application.Wait (Now + TimeValue("0:0:10"))
Else
CheckTitle = True
End If
End Function
Я не уверен, в каком виде диалогового окна вы обращаетесь, но вот несколько сценариев, которые будут загружать файлы из Интернета.
Поместите это в ячейку A1: http://www.math.smith.edu/r/data/help.xlsx
Поместите это в ячейку B1: C: \ Users \ Пользователь \ Desktop \ или путь, по которому вы хотите, чтобы загрузить файл
Положите это в cell C1: Скачивание файла успешно!
Запустить этот код.
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Sub pMain()
Dim sURL As String
Dim sDestination As String
Dim bSuccess As Boolean
Dim lRow As Long
Dim ws As Excel.Worksheet
Dim strSavePath As String
Dim URL As String, ext As String
Dim buf, ret As Long
'Change to suit
Set ws = ThisWorkbook.Worksheets("Sheet1")
With ws
For lRow = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
sURL = .Cells(lRow, "A")
sDestination = .Cells(lRow, "B")
buf = Split(sURL, ".")
ext = buf(UBound(buf))
pos = InStrRev(sURL, "/", -1)
file = Mid(sURL, pos + 1, 99)
strSavePath = sDestination & file
ret = URLDownloadToFile(0, sURL, strSavePath, 0, 0)
If ret = 0 Then
.Cells(lRow, "C") = "File download successfully!"
Else
.Cells(lRow, "C") = "Couldn't download the file!"
End If
DoEvents
Next lRow
End With
End Sub
Кроме того, попробуйте это ...
Private Declare Function URLDownloadToFile Lib "URLMON" Алиас _ "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _ szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub DownloadFilefromWeb()
Dim strSavePath As String
Dim URL As String, ext As String
Dim buf, ret As Long
URL = Worksheets("Sheet1").Range("A2").Value
buf = Split(URL, ".")
ext = buf(UBound(buf))
strSavePath = "C:\Users\your_path\Desktop\" & "DownloadedFile." & ext
ret = URLDownloadToFile(0, URL, strSavePath, 0, 0)
If ret = 0 Then
MsgBox "Download has been succeed!"
Else
MsgBox "Error"
End If
End Sub
Привет Спасибо за ответ –
Dim веб-сайт сайт = "http://gcm-perceive.nam.nsroot.net /qtv/report_contents.jsp?report-id=31&ver=1&node-id= "& server &" & c = 0 & sd = "& fDate &" & ed = "& lDate &" & theme-id = portal & r = excel " С IE .Visible = True .navigate сайт Do Хотя IE.Busy Или IE.readyState <> 4 DoEvents Loop End с –
Я использую этот код, чтобы открыть веб-страницу, которая начнет обработку. По завершении обработки появится диалоговое окно загрузки. Я могу обрабатывать диалоговое окно с помощью SendKeys. –
- 1. Подождите, пока элемент не появится - Selenium
- 2. Подождите, пока в поле не появится текст
- 3. Подождите, пока не появится коллекция в пакете
- 4. Selenium with Python - Подождите бесконечно, пока не появится окно ввода
- 5. Webdriver Подождите, пока появится ТЕКСТ
- 6. Подождите, пока диалоговое окно модели не будет закрыто в vb.net
- 7. Javascript Подождите, пока не появится текст
- 8. Подождите не менее 5 минут, пока элемент не появится
- 9. AutoIT Подождите, пока элемент управления появится
- 10. Подождите, пока откроется окно экрана
- 11. Пользовательский диалоговое окно ... Подождите, пока пользователь будет вводить данные?
- 12. Отключить галерею, пока не появится всплывающее окно
- 13. Подождите, пока текст не появится в SitePrism Capybara Framework
- 14. Подождите, пока не появится текст в реагентном компоненте
- 15. Подождите, пока файл не появится и не исчезнет?
- 16. Подождите код javascript, пока окно не закроется?
- 17. Selenium подождите, пока не появится один из двух элементов
- 18. Подождите, пока файл не появится до продолжения с программой
- 19. Selenium Webdriver - Подождите, пока на экране не появится полоса прокрутки.
- 20. Flash: диалоговое окно загрузки
- 21. Подождите, пока загрузится окно стороннего приложения
- 22. C# WPF Попытка установить диалоговое окно «Подождите»
- 23. Подождите, пока задача загрузки завершится в NSURLSession
- 24. Подождите, пока появится надпись, затем обработайте, затем удалите subview
- 25. Подождите, пока QWidget не закроется
- 26. Swift2 UITest - Подождите, пока элемент не появится без обработки теста. Не удалось в случае, если элемент не появится
- 27. Подождите, пока сообщение появится с помощью WWW :: Mechanize :: Firefox
- 28. Диалоговое окно «Диалоговое окно« Диалоговое окно «Диалоговое окно« Диалоговое окно »не обновлено
- 29. Подождите, пока не закончите?
- 30. Диалоговое окно VBA Word 2003
[Do События] (https://msdn.microsoft. ком/EN-US/библиотека/aa262728 (v = vs.60) .aspx)? –
Пожалуйста, покажите код, который вы пытаетесь использовать уже. Не показывая свой код, трудно предложить соответствующее разрешение тому, что может быть очень конкретной проблемой. –
это может быть полезно, может быть, это не так (мне сложно знать, так как я не знаю, что вы уже пробовали ...) http://stackoverflow.com/questions/28651257/how-can -i-automate-the-download-dialog-box-in-ie-using-vba? rq = 1 –