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 .shaperange
ist es keine Eigenschaft oder Methode von comment
und 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