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

Hur konverterar man webbadresser till bilder till faktiska bilder i Excel?

doc url till bild 1

Om du har en lista med webbadresser till bilder i kolumn A och nu vill du ladda ner motsvarande bilder från webbadresserna och visa dem i intilliggande kolumn B som vänster skärmdump visas. Hur kunde du extrahera de faktiska bilderna från bild-URL: erna i Excel snabbt och enkelt?

Konvertera bild-URL: er till faktiska bilder med VBA-kod

Konvertera bild-URL: er till faktiska bilder med Kutools för Excel


Konvertera bild-URL: er till faktiska bilder med VBA-kod

Följande VBA-kod kan hjälpa dig att snabbt extrahera de faktiska bilderna från webbadresserna till bilden, gör så här:

1. Håll ner ALT + F11 för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i modulfönstret.

VBA-kod: Konvertera bild-URL: er till faktiska bilder:

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

Anmärkningar: 

  • 1. I ovanstående kod, A2: A5 är cellintervallet som innehåller URL-adresserna du vill extrahera bilderna, bör du ändra cellreferenser efter dina behov.
  • 2. Med den här koden kan du inte ange storleken på de extraherade bilderna efter dina behov.
  • 3. Ovanstående kod kan endast extrahera de aktiva bilderna i cellerna förutom din URL-kolumn, du kan inte ange cell för att mata ut bilderna.
  • 4. Du bör ha en del grundläggande kunskaper om koden, om något tecken saknas eller är felaktigt kommer koden inte att köras framgångsrikt.

3. Tryck sedan på F5 nyckel för att köra den här koden och alla motsvarande bilder har extraherats från bild-URL: erna till den intilliggande kolumnen på en gång, och bilderna kommer att placeras i mitten av dina specifika celler, se skärmdump:

doc url till bild 2


Konvertera bild-URL: er till faktiska bilder med Kutools för Excel

Om du inte känner till VBA-koden eller vill åtgärda begränsningen av ovanstående kod, Kutools för Excel's Infoga bilder från sökväg (URL) funktionen kan hjälpa dig att snabbt infoga de motsvarande bilderna baserat på URL-adresserna eller den specifika sökvägen i din dator enligt nedanstående skärmdump. Klicka för att ladda ner Kutools för Excel!

Anmärkningar:Att tillämpa detta Infoga bilder från sökväg (URL)För det första bör du ladda ner Kutools för Excel, och använd sedan funktionen snabbt och enkelt.

När du har installerat Kutools för Excel, gör så här:

1. Klicka Kutools > Insert > Infoga bilder från sökväg (URL), i dialogrutan popped out, ställ in följande åtgärder, se skärmdumpar:

doc url till bild 3 doc url till bild 4

2. Klicka sedan Ok knappen, och bilderna extraheras från webbadresserna, se skärmdump:

doc url till bild 1

Klicka för att ladda ner och prova gratis Kutools för Excel nu!


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (61)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Kan du ändra "på fel CV nästa" till något som väntar tills Google Chrome har tid att öppna bilden? Jag försökte den här koden och den fungerar, men några av bilderna klistras in flera rader nedan där de ska, så jag antar att "on error"-satsen inte ger det tillräckligt med tid. Om du tror att det kan vara något annat eller har andra förslag är jag öppen för att höra det. Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Det här var till stor hjälp, så mycket
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har provat formeln, men den verkar inte fungera. Skulle det behöva göra något med versionen av Excel (jag har dock den senaste versionen) jag uppskattar ditt svar
Denna kommentar minimerades av moderatoren på webbplatsen
Vilket problem får du?
Denna kommentar minimerades av moderatoren på webbplatsen
Runtime error '1004': Det går inte att hämta insert-egenskapen för klassen Pictures
Denna kommentar minimerades av moderatoren på webbplatsen
Detta fungerar inte för mig heller. Jag har Excel 2013 och jag behöver helt enkelt en enkel kodbit som infogar bilder förutom webbadresserna som finns i en kolumn i mitt kalkylblad. Varje enskild lösning jag har provat som är tillgänglig via Google Sök eller via YouTube har gett ett fel på bildinfogningsvärde. Vad gör jag fel??? Ska webbadresserna INTE vara hyperlänkar? Ska de vara hyperlänkar? Ska jag identifiera kolumnområdet som utgången går till? Jag kan inte hitta en enkel uppsättning instruktioner någonstans, snälla hjälp. När jag använder DIN kod får jag klassen "Kan inte få insert-egenskapen för Pictures":
Denna kommentar minimerades av moderatoren på webbplatsen
Jag hade samma problem och det visar sig att du måste kontrollera din url. om det är HTTPS betyder det att det är en säker anslutning och VBA kommer inte att kunna extrahera den. om det är en vanlig HTTP borde det inte vara några problem
Denna kommentar minimerades av moderatoren på webbplatsen
Tack. Det fungerade för mig Hur ändrar/modifierar jag syntaxen för att visa bildwebbadresser som är lösenordsskyddade
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla, jag har modifierat dessa koder så att de fungerar för det valda intervallet istället för att ange det specifika intervallet, men kan någon föreslå mig hur man ändrar dessa kod så att bilden blir i mitten av cellen. För närvarande visas bilden i det övre vänstra hörnet

Sub URLPictureInsert()

Dim Pshp As Shape

Dim rCell As Range

On Error Resume Next

Application.ScreenUpdating = False

För varje rCell i urval

filnamn = rCell ActiveSheet.Pictures.Insert(filnamn). Välj

Ange Pshp = Selection.ShapeRange.Item(1)

Med Pshp

.LockAspectRatio = msoTrue

.Bredd = 100

.Höjd = 100

.Skära

Sluta med

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

Nästa Application.ScreenUpdating = Sant

End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
FANTASTISK! det här är så bra! Jag hade 350 rader med hyperlänkar och det tog bara 5 minuter att dra alla bilder!
Denna kommentar minimerades av moderatoren på webbplatsen
hej, kan någon bifoga en länk till excel-ark med makrokod aktiverad så att jag kan ladda ner och experimentera, jag är ny på VB och jag behöver verkligen göra detta.
Denna kommentar minimerades av moderatoren på webbplatsen
För mig är allt som dyker upp i varje cell namnet på metoden. De säger alla "Sub URLPictureInsert()"
Denna kommentar minimerades av moderatoren på webbplatsen
Fungerar perfekt men kan någon hjälpa mig att lägga till något för att kontrollera om bilden finns och om den inte gör det, posta en text i cellen som "Bild ej tillgänglig" ??
Denna kommentar minimerades av moderatoren på webbplatsen
I Excel 2010 var jag tvungen att lägga till dessa deklarationer

Dim Rng som intervall
Dim cell som intervall
Dim filnamn som sträng
Denna kommentar minimerades av moderatoren på webbplatsen
För att få detta att fungera i Excel 2010 var jag tvungen att lägga till dessa deklarationer.


Dim Rng som intervall
Dim cell som intervall
Dim filnamn som sträng
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att köra detta så att det är över en rad istället för en kolumn? Jag har försökt att helt enkelt ändra intervallet och den slutliga platsen för bilden men det producerar bara den första cellen.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Taylor,
Kan vara följande VBA-kod kan hjälpa dig att extrahera de riktiga bilderna i en rad webbadresser:


Sub URLPictureInsert()
Dim Pshp As Shape
On Error Resume Next
Application.ScreenUpdating = False
Set Rng = ActiveSheet.Range("A1:E1")
För varje cell i Rng
filnamn = cell
ActiveSheet.Pictures.Insert(filnamn). Välj
Ange Pshp = Selection.ShapeRange.Item(1)
Med Pshp
.LockAspectRatio = msoTrue
.Bredd = 100
.Höjd = 100
.Skära
Sluta med
Celler (cell. Rad + 1, cell. Kolumn). Klistra in Special
Nästa
Application.ScreenUpdating = True
End Sub

Försök gärna, hoppas det kan hjälpa dig. Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej killar
Det skulle älska att få det här att fungera men när jag kopierar detta i VBA och klickar på kör får jag bara denna text:
Sub URLPictureInsert()
Kan du snälla hjälpa mig att få bildens miniatyrbild?
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,
När du använder koden kan du ändra bildens bredd och höjdstorlek så att den matchar dina celler.
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Fungerar utmärkt för att dra bilder, men de läggs slumpmässigt och inte i de förväntade cellerna... Excel 2016 från Office365...
Denna kommentar minimerades av moderatoren på webbplatsen
Hej DKcrm,
Tack för din kommentar, koden i den här artikeln har uppdaterats, prova den nya, hoppas den kan hjälpa dig!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för ditt inlägg. Hur jag kan få bilderna i mitten av cellen. Med nuvarande koder visas bilderna i det övre vänstra hörnet
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Khan,
Följande VBA-kod kan hjälpa dig att extrahera bilden och placera dem i mitten av cellerna, försök det.

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:A6")
För varje cell i Rng
filnamn = cell
ActiveSheet.Pictures.Insert(filnamn). Välj
Ange Pshp = Selection.ShapeRange.Item(1)
Om Pshp är ingenting, gå till labbet
xCol = cell.Kolumn + 1
Ställ in xRg = Cells(cell.Row, xCol)
Med Pshp
.LockAspectRatio = msoFalse
Om .Width > xRg.Width Då .Width = xRg.Width * 2/3
Om .Height > xRg.Height Då .Height = xRg.Height * 2/3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
Sluta med
labb:
Ställ in Pshp = Ingenting
Range("A2"). Välj
Nästa
Application.ScreenUpdating = True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Kunde du inte få detta att fungera kan du visa den färdiga koden för denna begäran?
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,
Jag vill ladda ner bilderna från URL:erna (kolumn A) i en specifik mapp och byta namn på samma bilder med en kod/nummer som finns där i kolumn B.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Vipin,
För att spara webbadressens bilder i en mapp och byta namn på dem med de nya namnen i kolumn B, kan följande VBA-kod hjälpa dig:

Obs! Kolumn A innehåller URL-adresserna och kolumn B har de nya namnen.

#Om VBA7 Då
Private Declare PtrSafe Funktion 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)
#Annan
Private Declare Funktion 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
#Sluta om
Sub URLPictureInsert()
Dim I som heltal
Dim xStr As String
Dim xFd As FileDialog
Dim xArr, xFdItem Som variant
Application.ScreenUpdating = False
Ställ in xFd = Application.FileDialog(msoFileDialogFolderPicker)
Om xFd.Show = -1 Då
xFdItem = xFd.SelectedItems.Item(1)
xArr = Range("A2:B5").Värde
För I = 1 Till UBound(xArr)
Om xArr(I, 1) <> "" Då
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
Nästa
End If
Application.ScreenUpdating = True
End Sub

Försök gärna, hoppas detta kan hjälpa dig!
Denna kommentar minimerades av moderatoren på webbplatsen
den omdöpande delen i kolumn B laddas upp i mappen men lägger till ett antal siffror bredvid namnet på bilden, hur kan jag utelämna det?

Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej David,
Vba-koden nedan kan hjälpa dig att extrahera iimages och byta namn på dem utan subfix-numret, försök. Hoppas det kan hjälpa dig!

#Om VBA7 Då
Private Declare PtrSafe Funktion 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)
#Annan
Private Declare Funktion 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
#Sluta om
Sub URLPictureInsert()
Dim I som heltal
Dim xStr As String
Dim xFd As FileDialog
Dim xArr, xFdItem Som variant
Application.ScreenUpdating = False
Ställ in xFd = Application.FileDialog(msoFileDialogFolderPicker)
Om xFd.Show = -1 Då
xFdItem = xFd.SelectedItems.Item(1)
xArr = Range("A2:B5").Värde
För I = 1 Till UBound(xArr)
Om xArr(I, 1) <> "" Då
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
Nästa
End If
Application.ScreenUpdating = True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Herregud!! Du gav precis ett mirakel, det fungerar som en charm. Tack så mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
intervallet är inställt, filnamn = url och ändras för varje pass, Pshp är alltid ingenting. Några idéer
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använder en Intel I5-processor, Windows 7 Professional 64bit, Office 2016 64bit. Jag antar att problemet är en inställning i Excel. All hjälp skulle vara mycket uppskattad.
intervall är inställt, filnamn = url och ändras med varje pass, Pshp är alltid ingenting, URL:er verifieras, Alla idéer
Denna kommentar minimerades av moderatoren på webbplatsen
Hej skyyang, först med ett så informativt inlägg. Jag har en fråga, kan du snälla hjälpa mig. Med hjälp av denna kod vill jag bara extrahera en bild och vill placera den i en specifik cell. Är det möjligt??
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Shozib,
För att placera bilderna i andra celler som du vill, använd följande VBA-kod:

Sub URLPictureInsert1()
'Uppdatering av Extendoffice 20180608
Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Set Rng = Application.InputBox("Välj url-cellerna:", "KuTools for excel", Selection.Address, , , , , 8)
Om Rng är ingenting, avsluta Sub
Set xRg = Application.InputBox("Välj en cell för att lägga bilden:", "KuTools for excel", , , , , , 8)
Om xRg är ingenting, avsluta Sub
Application.ScreenUpdating = False
För I = 1 Till Rng.Count
filnamn = Rng(I)
ActiveSheet.Pictures.Insert(filnamn). Välj
Ange Pshp = Selection.ShapeRange.Item(1)
Om Pshp är ingenting, gå till labbet
xCol = cell.Kolumn + 1
Ställ in xRg = xRg.Offset(I - 1, 0)
Med Pshp
.LockAspectRatio = msoFalse
.Bredd = 80
.Höjd = 80
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
Sluta med
labb:
Ställ in Pshp = Ingenting
Range("A2"). Välj
Nästa
Application.ScreenUpdating = True
End Sub

Prova det, hoppas det kan hjälpa dig!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla, det här makrot är fantastiskt. Den lägger dock inte riktigt till bilder i filen utan länkar som genererar bilder varje gång jag öppnar filen. Jag kan alltså inte komprimera bilder eftersom de inte riktigt finns i filen. Kan du snälla hjälpa mig att verkligen spara bilder i filen?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Jag har samma fråga.
Finns det ett sätt att spara bilden effektivt i Excel? (och inte länkad utanför)
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL