Dieser Artikel vermittelt Ihnen relevantes Wissen über Excel, in dem hauptsächlich verwandte Themen zum Abfragen von Bildern nach Namen organisiert werden, einschließlich des Einfügens von Bildern aus einem Arbeitsblatt in ein anderes Arbeitsblatt entsprechend den Daten Bildnamen in Spalte A der Tabelle, Stapeleinfügung von Fotos aus der Fototabelle in Spalte B der Datentabelle usw. Schauen wir sie uns gemeinsam an. Ich hoffe, dass es für alle hilfreich ist.
Verwandte Lernempfehlungen: Excel-Tutorial
Wie füge ich Bilder von einem Arbeitsblatt in ein anderes ein? Geben Sie ein Beispiel.
Wie unten gezeigt:
Eine Arbeitsmappe besteht aus zwei Arbeitsblättern.
Das Arbeitsblatt, in dem Fotos gespeichert werden, heißt [Fotos], und das Arbeitsblatt, in das Bilder eingefügt werden müssen, heißt [Daten].
Jetzt müssen wir Fotos aus der Tabelle [Foto] stapelweise in Spalte B der Tabelle [Daten] einfügen, basierend auf den Bildnamen in Spalte A der Tabelle [Daten] ...
Die Beispielanimation sieht wie folgt aus:
...
Um eine solche Funktion zu implementieren, reichen eigentlich 3 Zeilen Code.
Der Code lautet wie folgt:
Sub InsertPicFromSheet() Dim rngData As Range, rngPicName As Range For Each rngData In Range("a2", Cells(Rows.Count, 1).End(3)) Set rngPicName = Sheets("照片").Cells.Find(rngData.Value, , , xlWhole) '使用Find方法在照片表完整匹配姓名 If Not rngPicName Is Nothing Then rngPicName.Offset(0, 1).Copy rngData.Offset(0, 1) '如果有找到对应的姓名,则将照片复制粘贴到目标位置 Next End Sub
Aber...
Das größte Problem mit dem obigen Code ist, dass die Datentabelle bereits alte Bilder enthält, ohne sie zu löschen. Wenn Sie das Programm wiederholt ausführen, kommt es zu einer Anhäufung von Bilder Um dieses Problem zu lösen, müssen wir zwei Codesätze hinzufügen.
Der Code wird wie folgt geändert:
Sub InsertPicFromSheet() Dim shp As Shape, rngData As Range, rngPicName As Range For Each shp In ActiveSheet.Shapes '删除活动工作表原有照片 If shp.Type = 13 Then shp.Delete Next For Each rngData In Range("a2", Cells(Rows.Count, 1).End(3)) Set rngPicName = Sheets("照片").Cells.Find(rngData.Value, , , xlWhole) '使用Find方法在照片表的完整匹配姓名 If Not rngPicName Is Nothing Then rngPicName.Offset(0, 1).Copy rngData.Offset(0, 1) '如果有找到对应的姓名,则将照片复制粘贴到目标位置 Next End Sub
Der obige Code verwendet einen einheitlichen Ansatz zum Löschen alter Bilder.
Aber...
Obwohl dieser Code mit geringfügigen Änderungen ausreicht, um die meisten Probleme für Freunde mit guten VBA-Grundlagen zu lösen, ist er für Anfänger offensichtlich nicht freundlich genug...
Zum Beispiel ...
1. Der Name des Fotos ist in Spalte A der Datentabelle festgelegt. Tatsächlich ist es wahrscheinlich nicht Spalte A. Ich habe recht.
2. Der Ort, an dem das Foto platziert wird, ist in der Zelle festgelegt, in der die Namensspalte um eine Spalte nach rechts verschoben wird. In der tatsächlichen Situation ist dies natürlich immer noch der Fall.
3. Das Arbeitsblatt, in dem Fotos gespeichert werden, ist im Code tatsächlich nicht der Fall.
4 die Zellen passen sich den Bildern an. ..
Es gibt noch einige Probleme, die in praktischen Anwendungen ungelöst auftreten können...
Zum Beispiel...
1. Wie löst man die Verknüpfung zwischen Bildern und Datenquellen? Wenn sich das Bild der Datenquelle ändert, ändert sich automatisch auch das Bild der Datentabelle? Nun, zusätzlich zum erneuten Ausführen des Programms können Sie auch das Aktivierungsereignis des Arbeitsblatts verwenden oder stattdessen activesheet.chartobjects.add verwenden ...
2 So stellen Sie die Größe des Bildes so ein, dass es in die Zelle passt Passen Sie die Größe der Zelle an das Bild an?
Verwandte Lernempfehlungen:
Excel-TutorialDas obige ist der detaillierte Inhalt vonSo können Sie Bilder in Excel ganz einfach nach Namen abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!