Hi! Versuchen, das Armaturenbrett mit aussagekräftigen Bildern zu rocken. Oder versuchen Sie einfach, ein Bild in die Excel-VBA-Zelle einzufügen. Nun, Sie können keine Bilder in Excel-Zellen einfügen, aber Sie können die Größe ändern, um sie in eine Excel-Zelle zu passen. Die manuelle Ausführung nimmt viel Zeit in Anspruch und ist ärgerlich. Was ist also die Lösung? Sie haben es richtig erraten, ein VBA-Makro. Wir werden jetzt codieren.
Unten ist der Excel-VBA-Code zum Einfügen eines Bildes aus einem Ordner in eine Zelle oder einen bestimmten Bereich. Drücken Sie Alt+F11, fügen Sie ein Modul ein und kopieren Sie diesen Code.
Keine Sorge, ich habe es unten erklärt, damit Sie es nach Ihren Bedürfnissen ändern können.
Bild in Excel-Zelle mit VBA in eine Zelle oder einen bestimmten Bereich einfügen
Sub TestInsertPictureInRange()InsertPictureInRange "C:\Ordnername\PictureFileName.gif", _Range("B5:D10")
End Sub ' fügt ein Bild ein und passt die Größe an den TargetCells-Bereich an Dim p als Objekt, t als Double, l als Double, w als Double, h als Double Wenn TypeName(ActiveSheet) "Arbeitsblatt" dann Exit Sub If Dir(PictureFileName) = "" Then Exit Sub 'Bild importieren Set p = ActiveSheet.Pictures.Insert(PictureFileName) 'Positionen bestimmen Mit TargetCells t = .Top l = .Links w = .Offset(0, .Spalten.Anzahl).Links - .Links h = .Offset(.Rows.Count, 0).Top - .Top Ende mit 'Positionsbild Mit P .Oben = t .Links = l .Breite = w .Höhe = h Ende mit Setze p = Nichts End Sub |
Erläuterung:
Teil 1:
Sub TestInsertPictureInRange()InsertPictureInRange "C:\Ordnername\PictureFileName.gif", _Range("B5:D10")
End Sub |
Die obige Unterroutine ruft einfach unsere Hauptunterroutine InsertPictureInRange auf, die nur zwei Argumente akzeptiert. Zuerst die Adresse der Bilddatei mit ihrem Namen und der zweite Bereich, in den Sie das Bild in Excel einfügen möchten.
Teil 2:
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)' fügt ein Bild ein und passt es an den TargetCells-Bereich an.Dim p As Object, t As Double, l As Double, w As Double, h As Double
Wenn TypeName(ActiveSheet) "Arbeitsblatt" dann Exit Sub If Dir(PictureFileName) = "" Then Exit Sub 'Bild importieren Set p = ActiveSheet.Pictures.Insert(PictureFileName) 'Positionen bestimmen Mit TargetCells t = .Top l = .Links w = .Offset(0, .Spalten.Anzahl).Links - .Links h = .Offset(.Rows.Count, 0).Top - .Top Ende mit 'Positionsbild Mit P .Oben = t .Links = l .Breite = w .Höhe = h Ende mit Setze p = Nichts End Sub |
Dies ist die Hauptunterroutine, die das Bild einfügt und die Größe ändert, damit es in den angegebenen Bereich passt. Tauchen wir ein.
Dim p als Objekt, t als Double, l als Double, w als Double, h als Double
Diese Zeile ist nur eine Variablendeklaration, die wir benötigen. Hinweis p Als Objektvariable. Diese Variable hält unser Bild.
Wenn TypeName(ActiveSheet) "Arbeitsblatt" dann Exit Sub
Es prüft, ob das Activesheet ein Arbeitsblatt ist oder nicht. Wenn dies nicht der Fall ist, wird der Code sofort beendet und nichts passiert.
If Dir(PictureFileName) = "" Then Exit Sub
Überprüfen Sie, ob Sie eine Adresse für das Bild angegeben haben, um ein Foto in die Excel-Zelle einzufügen. Wenn Sie es nicht angegeben haben, wird es sofort beendet und es passiert nichts.
Set p = ActiveSheet.Pictures.Insert(PictureFileName)
Das ist jetzt die wichtigste Zeile. In dieser Zeile verwenden wir die Einfügefunktion von Activesheet. Pictures-Objekt und fügen Sie es in das zuvor deklarierte Objekt p ein. Jetzt können wir mit p ganz einfach die Breite und Länge des Bildes anpassen.
Mit TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top End With
Dieses Segment erhält nur Länge, Breite, Oben und Links aus dem angegebenen Bereich.
Mit p .Oben = t .Links = l .Breite = w Höhe = h Ende Mit
Dieser Teil passt das Bild an den angegebenen Bereich an. Und es ist vollbracht. Schließlich setzen wir es frei, indem wir es auf nichts setzen.
Setze p = Nichts
Speicher dieser Zeile frei.
Dieser Code funktioniert in Excel 2016, Excel 2013, Excel 2010 und Excel 2007.
Hier wollte ich das Bild im Bereich A1:C10 einfügen. Dazu habe ich meinen Code unten modifiziert
UntertestInsertPictureInRange()InsertPictureInRange "C:\Users\Manish Singh\Downloads\biker.jpg", _Bereich("A1: C10")
End Sub |
Und das habe ich bekommen. Genau das was ich wollte.
Also, ja. Verwenden Sie diesen Code, um ein Bild in die Excel-Zelle oder den Bereich einzufügen. Spielen Sie mit dem Code herum. Versuchen Sie, verschiedene Formate und seltsame Bereiche einzufügen, und sehen Sie, was passiert. Wenn Sie Fragen haben oder vor einer Herausforderung stehen, verwenden Sie den folgenden Kommentarbereich, um mich zu fragen.
Download-Datei
Populäre Artikel:
50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität
So verwenden Sie die SVERWEIS-Funktion in Excel
So verwenden Sie die ZÄHLENWENN-Funktion in Excel
So verwenden Sie die SUMIF-Funktion in Excel