it-swarm.com.de

Wie kann ich eine URL als Bild in einer Excel-Zelle anzeigen?

Kann mir bitte jemand erklären, wie man aus einem Weblink (URL) ein Bild macht.

Beispielbild (URL ist http://cache.lego.com/media/bricks/5/1/4667591.jpg)

http://cache.lego.com/media/bricks/5/1/4667591.jpg

Ich versuche, eine Teileliste zu erstellen, die ich heruntergeladen habe, um das Bild und nicht den obigen Weblink anzuzeigen.

Was ich in J2 bis J1903 habe, ist:

http://cache.lego.com/media/bricks/5/1/4667591.jpg
http://cache.lego.com/media/bricks/5/1/4667521.jpg
...

Was ich tun möchte, ist, Excel zu veranlassen, alle diese (10903 von ihnen) in die Abbildungen (Zellengröße 81x81) zu verwandeln.

Kann mir bitte jemand Schritt für Schritt erklären, wie ich das machen kann?

7
Dave Gray

Wenn Sie eine Reihe von Links in der Spalte J haben, wie:

enter image description here

und Sie führen dieses kurze VBA-Makro aus:

Sub InstallPictures()
    Dim i As Long, v As String
    For i = 2 To 1903
        v = Cells(i, "J").Value
        If v = "" Then Exit Sub
        With ActiveSheet.Pictures
            .Insert (v)
        End With
    Next i
End Sub

jeder der Links wird geöffnet und das zugehörige Bild wird auf dem Arbeitsblatt platziert.

Die Bilder müssen die richtige Größe und Position haben.

EDIT # 1:

Makros sind sehr einfach zu installieren und zu verwenden:

  1. ALT-F11 öffnet das VBE-Fenster
  2. ALT-I ALT-M öffnet ein neues Modul
  3. fügen Sie das Material ein und schließen Sie das VBE-Fenster

Wenn Sie die Arbeitsmappe speichern, wird das Makro mit dieser gespeichert. Wenn Sie eine Excel-Version später als 2003 verwenden, müssen Sie die Datei als .xlsm und nicht als .xlsx speichern

enter image description here

So entfernen Sie das Makro:

  1. rufen Sie das VBE-Fenster wie oben beschrieben auf
  2. löschen Sie den Code
  3. schließen Sie das VBE-Fenster

So verwenden Sie das Makro aus Excel:

  1. ALT-F8
  2. Wählen Sie das Makro aus
  3. Tippen Sie auf AUSFÜHREN

Weitere Informationen zu Makros im Allgemeinen finden Sie unter:

http://www.mvps.org/dmcritchie/Excel/getstarted.htm

und

http://msdn.Microsoft.com/en-us/library/ee814735 (v = office.14) .aspx

Makros müssen aktiviert sein, damit dies funktioniert!

EDIT # 2:

Verwenden Sie diese Version, um zu vermeiden, dass beim Abrufen Fehler auftreten:

Sub InstallPictures()
    Dim i As Long, v As String
    On Error Resume Next
        For i = 2 To 1903
            v = Cells(i, "J").Value
            If v = "" Then Exit Sub
            With ActiveSheet.Pictures
                .Insert (v)
            End With
        Next i
    On Error GoTo 0
End Sub
6
Gary's Student

Dies funktioniert viel besser, da das Bild neben der Zelle landet, zu der es gehört.

Option Explicit
Dim rng As Range
Dim cell As Range
Dim Filename As String

Sub URLPictureInsert()
    Dim theShape As Shape
    Dim xRg As Range
    Dim xCol As Long
    On Error Resume Next
    Application.ScreenUpdating = False
    Set rng = ActiveSheet.Range("C1:C3000")   ' <---- ADJUST THIS
    For Each cell In rng
        Filename = cell
        If InStr(UCase(Filename), "JPG") > 0 Then   '<--- ONLY USES JPG'S
            ActiveSheet.Pictures.Insert(Filename).Select
            Set theShape = Selection.ShapeRange.Item(1)
            If theShape Is Nothing Then GoTo isnill
            xCol = cell.Column + 1
            Set xRg = Cells(cell.Row, xCol)
            With theShape
                .LockAspectRatio = msoFalse
                .Width = 100
                .Height = 100
                .Top = xRg.Top + (xRg.Height - .Height) / 2
                .Left = xRg.Left + (xRg.Width - .Width) / 2
            End With
isnill:
            Set theShape = Nothing
            Range("A2").Select
        End If
    Next
    Application.ScreenUpdating = True

    Debug.Print "Done " & Now

End Sub
1
tbone

Das ist meine Modifikation:

  • Zelle durch Verknüpfung mit Bild ersetzen (keine neue Spalte)
  • Erstellen Sie Bilder, die mit dem Dokument gespeichert werden (anstelle von Links, die zerbrechlich sein können)
  • Verkleinern Sie die Bilder etwas, damit sie nach Zellen sortiert werden können.

Code unten:

Option Explicit
Dim rng As Range
Dim cell As Range
Dim Filename As String

Sub URLPictureInsert()
    Dim theShape As Shape
    Dim xRg As Range
    Dim xCol As Long
    On Error Resume Next
    Application.ScreenUpdating = False
    ' Set to the range of cells you want to change to pictures
    Set rng = ActiveSheet.Range("A2:A600")  
    For Each cell In rng
        Filename = cell
        ' Use Shapes instead so that we can force it to save with the document
        Set theShape = ActiveSheet.Shapes.AddPicture( _
            Filename:=Filename, linktofile:=msoFalse, _
            savewithdocument:=msoCTrue, _
            Left:=cell.Left, Top:=cell.Top, Width:=60, Height:=60)
        If theShape Is Nothing Then GoTo isnill
        With theShape
            .LockAspectRatio = msoTrue
            ' Shape position and sizes stuck to cell shape
            .Top = cell.Top + 1
            .Left = cell.Left + 1
            .Height = cell.Height - 2
            .Width = cell.Width - 2
            ' Move with the cell (and size, though that is likely buggy)
            .Placement = xlMoveAndSize
        End With
        ' Get rid of the 
        cell.ClearContents
isnill:
        Set theShape = Nothing
        Range("A2").Select

    Next
    Application.ScreenUpdating = True

    Debug.Print "Done " & Now

End Sub
1
kresty