Existe uma maneira de “salvar como” um pdf vinculado por hyperlink em um arquivo excel?

1

Eu sou encarregado de baixar centenas de pdfs que estão ligados via hyperlink em um arquivo gigante do excel. A partir de agora, clico no hiperlink, que abre o arquivo no Adobe Explorer no Internet Explorer, e salve o arquivo em uma pasta no meu computador. Existe uma maneira de clicar no hiperlink dentro do excel e "salvar como", em vez de passar pelo processo tedioso de abrir e salvar cada pdf, um por um? Peço desculpas se esta pergunta parece um pouco estúpida ou vaga, eu não sou especialista em tecnologia!

    
por CTomas 23.07.2014 / 18:37

1 resposta

2

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

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

Abaixo está o código de vbaexpress escrito por Mvidas. É preciso um endereço de 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 testá-lo com

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 de seus hyperlinks

Você precisaria configurar um loop para passar pelas 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
    
por 23.07.2014 / 21:46