Note: The other languages of the website are Google-translated. Back to English
English English

Come convertire gli URL delle immagini in immagini reali in Excel?

doc url a img 1

Se hai un elenco di indirizzi URL di immagini nella colonna A, e ora, vuoi scaricare le immagini corrispondenti dagli URL e visualizzarle nella colonna adiacente B come mostrato nell'immagine a sinistra. In Excel, come potresti estrarre le immagini reali dagli URL delle immagini in modo rapido e semplice?

Converti gli URL dell'immagine in immagini reali con il codice VBA

Converti gli URL dell'immagine in immagini reali con Kutools per Excel


Converti gli URL dell'immagine in immagini reali con il codice VBA

Il seguente codice VBA può aiutarti a estrarre rapidamente le immagini reali dagli indirizzi URL dell'immagine, per favore fai come segue:

1. Tieni premuto il ALT + F11 tasti per aprire la finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Moduloe incolla il codice seguente nella finestra del modulo.

Codice VBA: converti gli URL dell'immagine in immagini reali:

Sub URLPictureInsert()
Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Application.ScreenUpdating = False
Set Rng = ActiveSheet.Range("A2:A5")
For Each cell In Rng
filenam = cell
ActiveSheet.Pictures.Insert(filenam).Select
Set Pshp = Selection.ShapeRange.Item(1)
If Pshp Is Nothing Then GoTo lab
xCol = cell.Column + 1
Set xRg = Cells(cell.Row, xCol)
With Pshp
.LockAspectRatio = msoFalse
If .Width > xRg.Width Then .Width = xRg.Width * 2 / 3
If .Height > xRg.Height Then .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
End With
lab:
Set Pshp = Nothing
Range("A2").Select
Next
Application.ScreenUpdating = True
End Sub

Note: 

  • 1. Nel codice sopra, A2: A5 è l'intervallo di celle che contiene gli indirizzi URL da cui si desidera estrarre le immagini, è necessario modificare i riferimenti di cella in base alle proprie necessità.
  • 2. Con questo codice, non è possibile specificare la dimensione delle immagini estratte secondo le proprie necessità.
  • 3. Il codice sopra può solo estrarre le immagini reali nelle celle oltre alla colonna URL, non è possibile specificare la cella per l'output delle immagini.
  • 4. Dovresti avere una conoscenza di base del codice, se qualche carattere manca o non è corretto, il codice non verrà eseguito correttamente.

3. Quindi premere F5 chiave per eseguire questo codice e tutte le immagini corrispondenti sono state estratte dagli URL dell'immagine alla colonna adiacente contemporaneamente e le immagini verranno posizionate al centro delle celle specifiche, vedi screenshot:

doc url a img 2


Converti gli URL dell'immagine in immagini reali con Kutools per Excel

Se non hai familiarità con il codice VBA o vuoi rimediare alla limitazione del codice sopra, Kutools for Excel's Inserisci immagini percorso modulo (URL) La funzione può aiutarti a inserire rapidamente le immagini che rispondono in base agli indirizzi URL o al percorso specifico nel tuo computer come mostrato nell'immagine sottostante. Fai clic per scaricare Kutools per Excel!

Note::Per applicare questo Inserisci immagini percorso modulo (URL), in primo luogo, dovresti scaricare il file Kutools for Excele quindi applica la funzione in modo rapido e semplice.

Dopo l'installazione Kutools for Excel, per favore fai come questo:

1. Clic Kutools > inserire > Inserisci immagini percorso modulo (URL), nella finestra di dialogo spuntata, impostare le seguenti operazioni, vedere schermate:

doc url a img 3 doc url a img 4

2. Quindi, fare clic Ok pulsante e le immagini verranno estratte dagli URL, vedi screenshot:

doc url a img 1

Fai clic per scaricare e prova gratuita Kutools per Excel ora!


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (61)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Potresti cambiare "in caso di errore riprende successivo" in qualcosa che attenderà fino a quando Google Chrome avrà il tempo di aprire l'immagine? Ho provato questo codice e funziona, ma alcune delle immagini vengono incollate diverse righe sotto dove dovrebbero, quindi presumo che l'istruzione "in caso di errore" non gli dia abbastanza tempo. Se pensi che possa essere qualcos'altro o hai altri suggerimenti, sono aperto a sentirlo. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Questo è stato di grande aiuto, davvero tanto
Questo commento è stato fatto dal moderatore sul sito
Ho provato la formula, ma non sembra funzionare. Dovrebbe fare qualcosa con la versione di Excel (ho la versione più recente, però) Apprezzo la tua risposta
Questo commento è stato fatto dal moderatore sul sito
Che problema stai riscontrando?
Questo commento è stato fatto dal moderatore sul sito
Errore di runtime "1004": impossibile ottenere la proprietà di inserimento della classe Pictures
Questo commento è stato fatto dal moderatore sul sito
Anche questo non funziona per me. Ho Excel 2013 e ho semplicemente bisogno di un semplice pezzo di codice che inserirà immagini oltre agli URL che si trovano in una colonna nel mio foglio di calcolo. Ogni singola soluzione che ho provato disponibile tramite Ricerca Google o tramite YouTube ha generato un errore del valore di inserimento delle immagini. Che cosa sto facendo di sbagliato??? Gli URL NON dovrebbero essere collegamenti ipertestuali? Devono essere collegamenti ipertestuali? Devo identificare l'intervallo di colonne a cui va l'output? Non riesco a trovare un set di istruzioni semplice da seguire da nessuna parte, per favore aiutatemi. Quando utilizzo il TUO codice, ottengo la classe "Impossibile ottenere la proprietà di inserimento delle immagini":
Questo commento è stato fatto dal moderatore sul sito
Ho avuto lo stesso problema e si scopre che devi controllare il tuo URL. se è HTTPS significa che è una connessione sicura e VBA non sarà in grado di estrarla. se è un normale HTTP non dovrebbero esserci problemi
Questo commento è stato fatto dal moderatore sul sito
Grazie. Ha funzionato per me Come posso cambiare/modificare la sintassi per visualizzare gli URL delle immagini protetti da password
Questo commento è stato fatto dal moderatore sul sito
Ciao a tutti, ho modificato questo codice in modo che funzioni per l'intervallo selezionato invece di inserire l'intervallo specifico, tuttavia, qualcuno può suggerirmi come modificare questo codice per avere l'immagine al centro della cella. Attualmente l'immagine viene visualizzata nell'angolo in alto a sinistra

SottoURLPictureInsert()

Dim Pshp come forma

Dim rCell come intervallo

On Error Resume Next

Application.ScreenUpdating = False

Per ogni rCell in selezione

nomefile = rCell ActiveSheet.Pictures.Insert(nomefile).Seleziona

Imposta Pshp = Selection.ShapeRange.Item(1)

Con Pshp

.LockAspectRatio = msoTrue

.Larghezza = 100

. Altezza = 100

.Taglio

Fine Con

Celle(rCell.Row, rCell.Column + 1).PasteSpecial

Avanti Application.ScreenUpdating = True

End Sub
Questo commento è stato fatto dal moderatore sul sito
STUPEFACENTE! questo è fantastico! avevo 350 righe di collegamento ipertestuale e ci sono voluti solo 5 minuti per estrarre tutte le immagini!
Questo commento è stato fatto dal moderatore sul sito
ehi, qualcuno può allegare un collegamento a un foglio excel con il codice macro abilitato in modo che io possa scaricare e sperimentare, sono nuovo di VB e ho un disperato bisogno di farlo.
Questo commento è stato fatto dal moderatore sul sito
Per me, tutto ciò che appare in ogni cella è il nome del metodo. Dicono tutti "Sub URLPictureInsert()"
Questo commento è stato fatto dal moderatore sul sito
Funziona perfettamente ma qualcuno può aiutarmi ad aggiungere qualcosa per verificare se l'immagine esiste e, in caso contrario, pubblicare un testo nella cella come "Immagine non disponibile" ??
Questo commento è stato fatto dal moderatore sul sito
In Excel 2010 ho dovuto aggiungere queste dichiarazioni

Dim Rng come intervallo
Cella debole come intervallo
Dim filename As String
Questo commento è stato fatto dal moderatore sul sito
Per farlo funzionare in Excel 2010 ho dovuto aggiungere queste dichiarazioni.


Dim Rng come intervallo
Cella debole come intervallo
Dim filename As String
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per eseguirlo in modo che sia su una riga anziché su una colonna? Ho provato semplicemente a cambiare l'intervallo e la posizione finale dell'immagine, ma produce solo la prima cella.
Questo commento è stato fatto dal moderatore sul sito
Ciao Taylor,
Potrebbe essere il seguente codice VBA che può aiutarti a estrarre le immagini reali in URL di riga:


SottoURLPictureInsert()
Dim Pshp come forma
On Error Resume Next
Application.ScreenUpdating = False
Imposta Rng = ActiveSheet.Range ("A1:E1")
Per ogni cella In Rng
nomefile = cella
ActiveSheet.Pictures.Insert(nomefile).Seleziona
Imposta Pshp = Selection.ShapeRange.Item(1)
Con Pshp
.LockAspectRatio = msoTrue
.Larghezza = 100
. Altezza = 100
.Taglio
Fine Con
Celle(cella.Riga + 1, cella.Colonna).Incolla Speciale
Successiva
Application.ScreenUpdating = True
End Sub

Per favore, provalo, spero che possa aiutarti. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao ragazzi,
Mi piacerebbe farlo funzionare, ma quando lo copio in VBA e faccio clic su Esegui ottengo solo questo testo:
SottoURLPictureInsert()
Potete per favore aiutarmi a ottenere la miniatura dell'immagine?
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Quando si applica il codice, è possibile modificare la dimensione della larghezza e dell'altezza dell'immagine in modo che corrisponda alle celle.
.
Questo commento è stato fatto dal moderatore sul sito
Funziona benissimo per estrarre le immagini, ma vengono inserite in modo casuale e non nelle celle previste... Excel 2016 da Office365...
Questo commento è stato fatto dal moderatore sul sito
Ciao, DKcrm,
Grazie per il tuo commento, il codice in questo articolo è stato aggiornato, prova quello nuovo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Grazie per il tuo post. Come posso ottenere le immagini al centro della cella. Con i codici attuali le immagini vengono visualizzate nell'angolo in alto a sinistra
Questo commento è stato fatto dal moderatore sul sito
Ciao, Khan,
il seguente codice VBA può aiutarti a estrarre l'immagine e inserirla al centro delle celle, provalo.

SottoURLPictureInsert()
Dim Pshp come forma
Dim xRg come intervallo
Dim xCol Finché
On Error Resume Next
Application.ScreenUpdating = False
Imposta Rng = ActiveSheet.Range ("A2:A6")
Per ogni cella In Rng
nomefile = cella
ActiveSheet.Pictures.Insert(nomefile).Seleziona
Imposta Pshp = Selection.ShapeRange.Item(1)
Se Pshp non è niente, allora GoTo lab
xCol = cella.Colonna + 1
Imposta xRg = Celle(cella.Riga, xCol)
Con Pshp
.LockAspectRatio = msoFalse
Se .Width > xRg.Width Allora .Width = xRg.Width * 2 / 3
Se .Altezza > xRg.Altezza Allora .Altezza = xRg.Altezza * 2 / 3
.Top = xRg.Top + (xRg.Altezza - .Altezza) / 2
.Sinistra = xRg.Sinistra + (xRg.Larghezza - .Larghezza) / 2
Fine Con
laboratorio:
Imposta Pshp = Niente
Intervallo ("A2").Seleziona
Successiva
Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Non è stato possibile farlo funzionare, puoi mostrare il codice completato per questa richiesta?
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Voglio scaricare le immagini dall'URL (colonna A) in una cartella specifica e rinominare le stesse immagini con un codice/numero presente nella colonna B.
Questo commento è stato fatto dal moderatore sul sito
Ciao Vipino,
Per salvare le immagini dell'URL in una cartella e rinominarle con i nuovi nomi nella colonna B, potrebbe essere utile il seguente codice VBA:

Nota: la colonna A contiene gli indirizzi URL e la colonna B i nuovi nomi.

#Se VBA7 Allora
Dichiarazione privata PtrSafe Funzione URLDownloadToFile Lib "urlmon" Alias ​​"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Altro
Funzione di dichiarazione privata URLDownloadToFile Lib "urlmon" Alias ​​"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Finisci se
SottoURLPictureInsert()
Dim I come intero
Dim xStr come stringa
Dim xFd come finestra di dialogo
Dim xArr, xFdItem come variante
Application.ScreenUpdating = False
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems.Item(1)
xArr = Intervallo("A2:B5").Valore
Per I = 1 A UBound(xArr)
Se xArr(I, 1) <> "" Allora
xStr = Mid(xArr(I, 1), InStrRev(xArr(I, 1), "."), Len(xArr(I, 1)))
URLDownloadToFile 0, xArr(I, 1), xFdItem & "\" & xArr(I, 2) & I & xStr, 0, 0
End If
Successiva
End If
Application.ScreenUpdating = True
End Sub

Per favore, provalo, spero che questo possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
la parte di ridenominazione sulla colonna B viene caricata nella cartella ma aggiunge un numero di conteggio accanto al nome dell'immagine, come posso ometterlo?

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao David,
Potrebbe essere il codice vba sottostante che può aiutarti a estrarre le iimages e rinominarle senza il numero di sottofisso, per favore prova. Spero che possa aiutarti!

#Se VBA7 Allora
Dichiarazione privata PtrSafe Funzione URLDownloadToFile Lib "urlmon" Alias ​​"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Altro
Funzione di dichiarazione privata URLDownloadToFile Lib "urlmon" Alias ​​"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Finisci se
SottoURLPictureInsert()
Dim I come intero
Dim xStr come stringa
Dim xFd come finestra di dialogo
Dim xArr, xFdItem come variante
Application.ScreenUpdating = False
Imposta xFd = Application.FileDialog(msoFileDialogFolderPicker)
Se xFd.Show = -1 Allora
xFdItem = xFd.SelectedItems.Item(1)
xArr = Intervallo("A2:B5").Valore
Per I = 1 A UBound(xArr)
Se xArr(I, 1) <> "" Allora
xStr = Mid(xArr(I, 1), InStrRev(xArr(I, 1), "."), Len(xArr(I, 1)))
URLDownloadToFile 0, xArr(I, 1), xFdItem & "\" & xArr(I, 2) & xStr, 0, 0
End If
Successiva
End If
Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Oh mio Dio!! Hai appena fornito un miracolo, funziona come un incantesimo. Grazie mille.
Questo commento è stato fatto dal moderatore sul sito
l'intervallo è impostato, filenam = url e cambia ad ogni passaggio, Pshp non è sempre nulla. Qualche idea
Questo commento è stato fatto dal moderatore sul sito
Sto usando un processore Intel I5, Windows 7 Professional a 64 bit, Office 2016 a 64 bit. Presumo che il problema sia un'impostazione in Excel. Qualsiasi aiuto sarebbe molto apprezzato.
l'intervallo è impostato, filenam = url e cambia ad ogni passaggio, Pshp non è sempre nulla, gli URL sono verificati, Qualsiasi idea
Questo commento è stato fatto dal moderatore sul sito
Ciao skyyang, primo per un post così informativo. Ho una domanda, potresti aiutarmi per favore. Usando questo tuo codice voglio estrarre solo una foto e voglio inserirla in una cella specifica. È possibile??
Questo commento è stato fatto dal moderatore sul sito
Ciao, Shozib,
Per inserire le immagini in qualsiasi altra cella come desideri, applica il seguente codice VBA:

SottoURLPictureInsert1()
'Aggiorna entro Extendoffice 20180608
Dim Pshp come forma
Dim xRg come intervallo
Dim xCol Finché
On Error Resume Next
Set Rng = Application.InputBox("Seleziona le celle URL:", "KuTools for excel", Selection.Address, , , , , 8)
Se Rng non è niente, allora esci da Sub
Set xRg = Application.InputBox("Seleziona una cella in cui inserire l'immagine:", "KuTools for excel", , , , , , 8)
Se xRg non è niente, esci da Sub
Application.ScreenUpdating = False
Per I = 1 a Rng.Count
nomefile = Rng(I)
ActiveSheet.Pictures.Insert(nomefile).Seleziona
Imposta Pshp = Selection.ShapeRange.Item(1)
Se Pshp non è niente, allora GoTo lab
xCol = cella.Colonna + 1
Imposta xRg = xRg.Offset(I - 1, 0)
Con Pshp
.LockAspectRatio = msoFalse
.Larghezza = 80
. Altezza = 80
.Top = xRg.Top + (xRg.Altezza - .Altezza) / 2
.Sinistra = xRg.Sinistra + (xRg.Larghezza - .Larghezza) / 2
Fine Con
laboratorio:
Imposta Pshp = Niente
Intervallo ("A2").Seleziona
Successiva
Application.ScreenUpdating = True
End Sub

Per favore, provalo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ciao a tutti, questa macro è fantastica. Tuttavia, in realtà non aggiunge immagini al file, ma collegamenti che generano immagini ogni volta che apro il file. Quindi non posso comprimere le immagini in quanto non sono realmente all'interno del file. Potresti aiutarmi a salvare davvero le immagini all'interno del file?
Questo commento è stato fatto dal moderatore sul sito
Ciao! Ho la stessa domanda.
C'è un modo per salvare l'immagine in modo efficace in Excel? (e non collegato all'esterno)
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite