2017-07-22 2 views
0

Ich habe ein Bild in einem Blatt1 in einem verbundenen Zellbereich S1: V8.
Ich kenne den Namen dieses Bildes nicht, da wir in diesem Bereich jedes Mal, wenn wir eine neue Excel-Datei aus einer Vorlage erstellen, verschiedene Bilder einfügen Ich möchte das Bild in diesem Bereich in dieser Arbeitsmappe oder einer anderen Arbeitsmappe kopieren auf ein Blatt namens "Database" in Zelle A6.
Wie mache ich das mit einem Makro? Ich habe einige Beispiele gefunden, aber alle für alle von ihnen müssen wir den Bildnamen kennen und ich weiß das nicht. Ich kann mir vorstellen, dass ich überprüfen kann, ob der Bereich Bilder enthält. Wenn ja, möchte ich nur die erste nehmen. Wählen Sie es aus und fügen Sie es erneut in der anderen Arbeitsmappe ein. Das einzige, was ich nicht tun kann, ist das Bild innerhalb des Bereichs zum Kopieren auszuwählen. Kann mir jemand helfen?Excel VBA Bild von einer Arbeitsmappe in eine andere Arbeitsmappe kopieren

Bonus-Features, wenn möglich:
- Danach habe ich es in die Zelle Dimension Größe verändert werden soll, aber das Seitenverhältnis beibehalten
- Nachdem ich es auf 96 dpi
komprimieren möchten - Diese Datei wird mehrere Bilder haben . Gibt es eine Möglichkeit, sie alle auf jede Zelle zu skalieren, wenn sie die Dimension der Bilder ändern? (Es wird ein Bild in Zelle A6, ein anderes in Zelle A7, ... und jemand könnte die Größe des Bildes in A20 zum Beispiel ändern)

Ich wusste nicht das Konzept der Cross-Posting, also ich muss Ihnen allen mitteilen, dass Dieser Beitrag ist auch auf: http://www.ozgrid.com/forum/showthread.php?t=204928 und in MrExcel Forum, aber ich bin noch nicht einen zweiten Hyperlink

enter image description here

Antwort

0

Es ist nicht klar, ob das Bild, das Sie sich beziehen setzen erlaubt ist "in der Zelle" oder über den Zellen schweben. Soweit ich weiß, ist die einzige Möglichkeit, ein Bild "in einer Zelle" zu haben, es im Kommentar der Zelle zu haben (eigentlich als Hintergrundbild für Kommentartext gedacht). In jedem Fall besteht der Schlüssel zur Manipulation mit VBA darin, eine Referenz dafür zu erhalten. Der folgende Code identifiziert das Vorhandensein eines der oben genannten Fälle, wenn Sie zunächst die Region der Zellen auswählen, wie im animierten GIF angezeigt. Soweit ich weiß, können Sie den Kommentaren über VBA nur Hintergrundbilder hinzufügen. enter image description here

Option Explicit 
Sub testForPicturesOrComments() 
Dim p As Picture, r As Range, hasComment As Boolean 
For Each p In ActiveSheet.Pictures 
    MsgBox ("There's a picture called " & p.Name) 
Next p 
For Each r In Selection 
    On Error Resume Next 
    hasComment = r.Comment.Parent.Address = r.Address 
    'Reset Run Time Errors 
    On Error GoTo 0 
    If hasComment Then 
    MsgBox ("There's a comment in " & r.Address _ 
    & " with a shape.ID = " & r.Comment.Shape.ID) 
    hasComment = False 
    End If 
Next r 
End Sub 
+0

Hallo Tony. Das Bild ist über den zusammengeführten Bereich S1: V8 nicht in einem Kommentar. Dieser Bereich ändert sich nicht. Kann ich ActiveSheet ändern? Bilder zu Activesheet.Range ("S1: V8) .Pictures? –

+0

Wenn Sie die Zelle (n) das Bild in der Nähe suchen möchten, können Sie eine Eigenschaft des Bildobjekts wie .TopLeftCell oder .BottomRightCell - zum Beispiel Sie verwenden kann die erste MsgBox in meinem Code durch MsgBox ersetzen ("Es gibt ein Bild namens" & p.Name & "at" & p.TopLeftCell.Address) - bitte markieren Sie die Frage als beantwortet, wenn Ihnen geholfen wurde - Danke . –

Verwandte Themen