Existe uma maneira de "salvar como" um PDF vinculado por hiperlink em um arquivo Excel?

Existe uma maneira de "salvar como" um PDF vinculado por hiperlink em um arquivo Excel?

Tenho a tarefa de baixar centenas de PDFs vinculados por hiperlink em um arquivo Excel gigante. A partir de agora, clico no hiperlink, que abre o arquivo no Adobe Reader no Internet Explorer, e salvo o arquivo em uma pasta do meu computador. Existe uma maneira de clicar no hiperlink do Excel e "salvar como", em vez de passar pelo tedioso processo de abrir e salvar cada PDF, um por um? Peço desculpas se esta pergunta parece um pouco estúpida ou vaga, não tenho nenhum conhecimento de tecnologia!

Responder1

Eu vou te levar até lá. Não há informações suficientes para fazer tudo, mas seria fácil procurar o resto.

Isso usa código vba para fazer o que você solicitou.

Abaixo está o código devbaexpressescrito por Mvidas. Ele pega um endereço da Internet e o salva em um arquivo local.

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 

Uma macro para testar

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 

Com esta função você precisa configurar um loop e obter o endereço dos seus hiperlinks

Você precisaria configurar um loop para percorrer suas células, obter o endereço do hiperlink e executar a função

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

informação relacionada