Te doy la bienvenida a nuestra página web, en este lugar hallarás la solucíon de lo que estás buscando.
Solución:
Prueba esto:
With xlApp.ActiveSheet.Pictures.Insert(PicPath)
With .ShapeRange
.LockAspectRatio = msoTrue
.Width = 75
.Height = 100
End With
.Left = xlApp.ActiveSheet.Cells(i, 20).Left
.Top = xlApp.ActiveSheet.Cells(i, 20).Top
.Placement = 1
.PrintObject = True
End With
Es mejor no seleccionar nada en Excel, por lo general nunca es necesario y ralentiza su código.
Mirando las respuestas publicadas, creo que este código también sería una alternativa para alguien. Nadie de arriba usó .Shapes.AddPicture
en su código, solo .Pictures.Insert()
Dim myPic As Object
Dim picpath As String
picpath = "C:Usersphoto.jpg" 'example photo path
Set myPic = ws.Shapes.AddPicture(picpath, False, True, 20, 20, -1, -1)
With myPic
.Width = 25
.Height = 25
.Top = xlApp.Cells(i, 20).Top 'according to variables from correct answer
.Left = xlApp.Cells(i, 20).Left
.LockAspectRatio = msoFalse
End With
Estoy trabajando en Excel 2013. También me di cuenta de que debe completar todos los parámetros en .AddPicture
, debido al error “Argumento no opcional”. Al mirar esto, puedes preguntar por qué configuré Height
y Width
como -1, pero eso no importa porque esos parámetros se establecen debajo entre With
soportes.
Espero que también pueda ser útil para alguien 🙂
Estuve trabajando en un sistema que se ejecutaba en una PC y Mac y estaba luchando por encontrar un código que funcionara para insertar imágenes tanto en PC como en Mac. ¡Esto funcionó para mí, así que espero que alguien más pueda usarlo!
Nota: las variables strPictureFilePath y strPictureFileName deben configurarse en rutas válidas para PC y Mac, por ejemplo.
Para PC: strPictureFilePath = “E: Dropbox ” y strPictureFileName = “TestImage.jpg” y con Mac: strPictureFilePath = “Macintosh HD: Dropbox:” y strPictureFileName = “TestImage.jpg”
Codifique como sigue:
On Error GoTo ErrorOccured
shtRecipeBrowser.Cells(intDestinationRecipeRowCount, 1).Select
ActiveSheet.Pictures.Insert(Trim(strPictureFilePath & strPictureFileName)).Select
Selection.ShapeRange.Left = shtRecipeBrowser.Cells(intDestinationRecipeRowCount, 1).Left
Selection.ShapeRange.Top = shtRecipeBrowser.Cells(intDestinationRecipeRowCount, 1).Top + 10
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 130
Aquí tienes las comentarios y puntuaciones
Acuérdate de que te brindamos la opción de comentar si te ayudó.