¿Existe alguna forma de "guardar como" un pdf vinculado mediante un hipervínculo en un archivo de Excel?

¿Existe alguna forma de "guardar como" un pdf vinculado mediante un hipervínculo en un archivo de Excel?

Tengo la tarea de descargar cientos de archivos PDF vinculados mediante un hipervínculo en un archivo de Excel gigante. A partir de ahora, hago clic en el hipervínculo que abre el archivo en Adobe Reader en Internet Explorer y guardo el archivo en una carpeta de mi computadora. ¿Hay alguna manera de hacer clic en el hipervínculo dentro de Excel y "guardar como", en lugar de pasar por el tedioso proceso de abrir y guardar cada pdf, uno por uno? Pido disculpas si esta pregunta parece un poco estúpida o vaga, ¡no soy un experto en tecnología en absoluto!

Respuesta1

Te llevaré a mitad del camino. No hay suficiente información para hacerlo todo, pero sería fácil buscar el resto.

Esto utiliza código vba para hacer lo que usted solicitó.

A continuación se muestra el código devbaexpressescrito por Mvidas. Toma una dirección de Internet y la guarda en un archivo 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 

Una macro para probarlo

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 

Con esta función necesitas configurar un bucle y obtener la dirección de tus hipervínculos.

Necesitaría configurar un bucle para recorrer sus celdas, obtener la dirección del hipervínculo y ejecutar la función.

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

información relacionada