Excel VBA: Fill.UserPicture

Excel VBA: Fill.UserPicture

Ich cell.Comment.ShapeRange...erhalte die Fehlermeldung: „Laufzeitfehler ‚1004‘: Anwendungsdefinierter oder objektdefinierter Fehler“. Was ist daran falsch?

Cells(cell.Row, 6)ist die Referenzspalte, die die URLs für die Bilder enthält. Beispiel:http://somelink.com/img.jpg

Sub test()
Dim rng As Range


Set rng = Range("B2:B2331")


For Each cell In rng.Cells
    cell.AddComment
    cell.Comment.Text Text:="Owner:" & Chr(10) & ""
    cell.Comment.ShapeRange.Fill.UserPicture Cells(cell.Row, 6).Value
Next


End Sub

Antwort1

Erstens .shaperangeist es keine Eigenschaft oder Methode von commentund Sie können es daher nicht verwenden.

Hier ist ein Beispiel, das funktionieren würde -

Sub tete()
Dim rng As Range
Set rng = ActiveSheet.Cells(5, 6)
rng.AddComment
rng.Comment.Text Text:="hi"
rng.Comment.Shape.Fill.UserPicture ("C:\Users\path\to\pic.jpg")
End Sub

Damit kommen wir zur Verwendung, .UserPicture()die einen Pfad als Zeichenfolge erfordert. Wenn sich Ihr Pfad also in dieser Zelle befindet, stellen Sie sicher, dass Sie den Wert davon übernehmen.

Wenn also Zelle G1 =C:\Users\path\to\pic.jpg

rng.Comment.Shape.Fill.UserPicture (Range("G1"))

würde funktionieren.


Dies ist eine Bearbeitung vonGeschichtsstempeldas lasse ich zu, weil es die ursprüngliche Absicht der Antwort nicht ändert und weil es stark darauf basiert, wird es möglicherweise nicht so gut ankommen oder als neue Antwort nicht so sichtbar sein.

Diese Version funktionierte unter macOS 10.10.5 mit Excel 2011.

Sub tete()
' Raystafarian
'    https://superuser.com/a/1011255/2638314

' This is the shortest code I have seen for inserting a picture into
'   a commnet.  & It works.

Dim rng As Range
Dim aPicture As String
Debug.Print "-------------------------- " & Now
aPicture = "Macintosh SSD:Users:mac:Desktop:numbers:1.png"
Set rng = ActiveSheet.Cells(5, 8)
rng.AddComment
rng.Comment.Text Text:=" "
Debug.Print aPicture
rng.Comment.Shape.Fill.UserPicture (aPicture)
End Sub

verwandte Informationen