![Excel VBA: Rellenar.Imagen de usuario](https://rvso.com/image/1476406/Excel%20VBA%3A%20Rellenar.Imagen%20de%20usuario.png)
Recibo cell.Comment.ShapeRange...
un error: "Error en tiempo de ejecución '1004': error definido por la aplicación o definido por el objeto". ¿Qué tiene de malo?
Cells(cell.Row, 6)
es la columna de referencia que contiene las URL de las imágenes. P.ejhttp://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
Respuesta1
Primero, .shaperange
no es una propiedad o método de, comment
por lo que no puedes usarlo.
Aquí hay un ejemplo que funcionaría:
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
Lo que nos lleva al uso de .UserPicture()
que requiere una ruta como cadena. Entonces, si su ruta está en esa celda, asegúrese de tomar su valor.
Entonces si la celda G1 =C:\Users\path\to\pic.jpg
rng.Comment.Shape.Fill.UserPicture (Range("G1"))
trabajaría.
Esta es una edición desello de historiaeso lo permito porque no altera la intención original de la respuesta y debido a que se basa en gran medida en ella, es posible que no funcione muy bien o no tenga visibilidad como una nueva respuesta.
Esta versión funcionó en macOS 10.10.5 con 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