Есть ли способ «сохранить как» PDF-файл, связанный гиперссылкой с файлом Excel?

Есть ли способ «сохранить как» PDF-файл, связанный гиперссылкой с файлом Excel?

Мне поручено загрузить сотни PDF-файлов, которые связаны гиперссылками в гигантском файле Excel. Сейчас я нажимаю на гиперссылку, которая открывает файл в Adobe Reader в Internet Explorer, и сохраняю файл в папке на моем компьютере. Есть ли способ нажать на гиперссылку в Excel и «сохранить как», вместо того, чтобы проходить через утомительный процесс открытия и сохранения каждого PDF-файла по одному? Прошу прощения, если этот вопрос покажется немного глупым или неопределенным, я вообще не разбираюсь в технологиях!

решение1

Я проведу вас туда частично. Информации недостаточно, чтобы сделать все, но остальное будет легко найти.

Это использует код VBA для выполнения того, что вы просили.

Ниже приведен код изvbaexpressнаписанный Mvidas. Он берет интернет-адрес и сохраняет его в локальном файле.

Option Explicit 
Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String) As Boolean 
    Dim oXMLHTTP As Object, i As Long, vFF As Long, oResp() As Byte 

     'You can also set a ref. to Microsoft XML, and Dim oXMLHTTP as MSXML2.XMLHTTP
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") 
    oXMLHTTP.Open "GET", vWebFile, False 'Open socket to get the website
    oXMLHTTP.Send 'send request

     'Wait for request to finish
    Do While oXMLHTTP.readyState <> 4 
        DoEvents 
    Loop 

    oResp = oXMLHTTP.responseBody 'Returns the results as a byte array

     'Create local file and save results to it
    vFF = FreeFile 
    If Dir(vLocalFile) <> "" Then Kill vLocalFile 
    Open vLocalFile For Binary As #vFF 
    Put #vFF, , oResp 
    Close #vFF 

     'Clear memory
    Set oXMLHTTP = Nothing 
End Function 

Макрос для проверки

Sub TestingTheCode() 
     'This will save the Google logo to your hard drive, insert it into the
     ' active spreadsheet, then delete the local file
    SaveWebFile "http://www.google.com/intl/en/images/logo.gif", "C:\GoogleLogo.gif" 
    ActiveSheet.Pictures.Insert "C:\GoogleLogo.gif" 
    Kill "C:\GoogleLogo.gif" 
End Sub 

С помощью этой функции вам нужно настроить цикл и получить адрес из ваших гиперссылок.

Вам нужно будет настроить цикл для прохождения по вашим ячейкам, получить адрес гиперссылки и запустить функцию.

For i = 1 to lastRow
    cellAddress = Replace(Range("A" & i).Hyperlinks(1).Address, "mailto:", "")
    'Something to get the file name from the whole file name here
    SaveWebFile cellAddress, destinationFolder & filename
Next

Связанный контент