Добрый день! Подскажите, пожалуйста, нашла в инете код как открыть гиперссылки:
Код VBA: сразу открывать сразу несколько гиперссылок
Код
Sub OpenHyperLinks()'Update 20141124
Dim xHyperlink As Hyperlink
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each xHyperlink In WorkRng.Hyperlinks
xHyperlink.Follow
Next
End Sub
, но они в моем файле не открываются все (нужно скачать все изображения, скачиваются 75, которые я вручную прокликала). Что нужно дополнительно сделать?
Спасибо, использовала код из статьи не работает совсем-возникает ошибка при запуске. Код который я в начале привела работает, он скачивает 75 изображений при условии, что в файле прокликать гиперссылки. Что с ними происходит? Они изменяют формат? Дело как я понимаю в гиперссылках, а не в коде.
Вы издеваетесь? Для того, чтобы обратиться по имени, существует специальная кнопка. Она так и называется - "Имя". А мысли есть: пройдитесь по своим сообщениям и удалите то, что Вы ошибочно считаете цитатой.
В Вашем файле нет макроса. По вопросу: макрос обрабатывает гиперссылки в выделенном диапазоне: сколько ячеек с гиперссылками выделили - столько он и обработает.
Юрий М, я делаю следующие шаги: 1, Удерживаю ALT + F11 и открываю Microsoft Visual Basic для приложений. 2. Нажимаю Вставить > модуль, и вставляю следующий код в Окно модуля.
Код
Sub OpenHyperLinks()
'Update 20141124
Dim xHyperlink As Hyperlink
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each xHyperlink In WorkRng.Hyperlinks
xHyperlink.Follow
Next
End Sub
3, Затем нажимаю F5 чтобы запустить этот код, и появляется окно подсказки, - выбираю весь диапазон [/P] 4, Затем нажимаю OK,
Попробовала еще раз на диапазоне где ссылки пока не прокликала - запустила код - изображения не скачались. После прокликала в этом диапазоне гиперссылки, запустила еще раз - все получилось. В чем мистика? Может тогда переформулировать задачу - как прокликать все ячейки?
Вы всё делаете правильно. Только пункты 1 и 2 следует выполнить один раз. После этого сохранить файл с поддержкой макросов. Проверил на столбце В - у Вас не во всех ячейках гиперссылки. Можете убедиться в этом сами: наводите курсор на ячейки и не везде указатель мышки поменяет свой вид на ладошку.
Юрий М, да действительно Вы правы насчет гиперссылок! А как тогда массово сделать их настоящими гиперссылками, чтобы все при наведении мышкой становились ладошками? Я пробовала выделять лист и нажимать кнопку на панели стилей "Гиперссылка", но это не помогает. И Спасибо за подсказку про сохранение с поддержкой макросов!
Следующий макрос интерпретирует значения ячеек, которые начинаются на "http:", как гиперссылки и загружает соответствующие файлы в ту же папку, где содержится книга с макросом. Перед вызовом нужно выделить соответствующие ячейки.
Код
#If VBA7 Then
Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileW" _
(ByVal pCaller As LongPtr, ByVal szURL As LongPtr, ByVal szFileName As LongPtr, _
ByVal dwReserved As Long, ByVal lpfnCB As LongPtr) As Long
#Else
Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileW" _
(ByVal pCaller As Long, ByVal szURL As Long, ByVal szFileName As Long, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If
Sub DownloadSelection()
Dim url, fil, i As Long, c As Range, n As Long, statusbar_o
statusbar_o = Application.StatusBar
For Each c In Selection.Cells
url = c.Value
If LCase(url) Like "http:*" Then
i = InStrRev(url, "/")
fil = ThisWorkbook.Path & "\" & Mid(url, i + 1)
If URLDownloadToFile(0, StrPtr(url), StrPtr(fil), 0, 0) <> 0 Then
MsgBox "Download error: " & url, vbCritical
Else
n = n + 1
Application.StatusBar = "Download files: " & n
End If
End If
Next c
Application.StatusBar = statusbar_o
End Sub