¡Hola! Intentando sacudir el tablero con imágenes significativas. O simplemente tratando de insertar una imagen en la celda Excel VBA. Bueno, no puede insertar imágenes en celdas de Excel, pero puede cambiar su tamaño para que quepan en la celda de Excel.

Hacerlo manualmente llevará mucho tiempo y es molesto. ¿Entonces, cuál es la solución? Lo has adivinado bien, una macro VBA. Codificaremos ahora.

A continuación se muestra el código Excel vba para insertar una imagen de una carpeta en una celda o un rango determinado. Presione Alt + F11, inserte un módulo y copie este código.

No te preocupes, te lo he explicado a continuación para que puedas modificarlo según tus necesidades.

Insertar imagen en celda de Excel con VBA en una celda o un rango dado [ancho = «100%», cols = «100%»,]

Sub TestInsertPictureInRange()InsertPictureInRange

«C:\FolderName\PictureFileName.gif», _Range(«B5:D10»)

End Sub

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)

‘ inserts a picture and resizes it to fit the TargetCells range

Dim p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> «Worksheet» Then Exit Sub

If Dir(PictureFileName) = «» Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

Explicación:

Parte 1:

Sub TestInsertPictureInRange()InsertPictureInRange

«C:\FolderName\PictureFileName.gif», _Range(«B5:D10»)

End Sub

La subrutina anterior solo llama a nuestra subrutina principal InsertPictureInRange que solo toma dos argumentos. Primero la dirección del archivo de imagen con su nombre y segundo Rango donde desea insertar la imagen en Excel.

Parte 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim

p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> «Worksheet» Then Exit Sub

If Dir(PictureFileName) = «» Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

Esta es la subrutina principal que inserta y cambia el tamaño de la imagen para que se ajuste al rango dado. Profundicemos en ello.

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Esta línea es solo una declaración de variable que necesitaremos. Nota p Como variable de objeto. Esta variable contendrá nuestra imagen.

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

Comprueba si la hoja activa es una hoja de trabajo o no. Si no es así, saldrá del código inmediatamente y no pasará nada.

If Dir(PictureFileName) = "" Then Exit Sub

Verifique que haya proporcionado una dirección para que la imagen inserte una foto en la celda de Excel. Si no lo ha proporcionado, se cerrará inmediatamente y no sucederá nada.

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

Ahora, esta es la línea más importante. En esta línea, estamos usando la función Insertar de Activesheet. Imágenes del objeto y ponerlo en el objeto p que declaramos anteriormente. Ahora, usando p, podemos ajustar fácilmente el ancho y el largo de la imagen.

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left - .Left

h = .Offset(.Rows.Count, 0).Top - .Top

End With

Este segmento solo obtiene Longitud, Ancho, Superior e Izquierda del rango dado.

With p

.Top = t

.Left = l

.Width = w

Height = h

End With

Esta parte ajusta la imagen al rango dado. Y esta hecho. Por último, lo liberamos poniéndolo en nada.

Set p = Nothing

Esta línea de memoria libre.

Este código funcionará en Excel 2016, Excel 2013, Excel 2010 y Excel 2007.

Aquí quería insertar la imagen en el rango A1: C10. Para hacer esto, modifiqué mi código debajo de [width = «100%», cols = «100%»,]

Sub TestInsertPictureInRange()InsertPictureInRange «*C:\Users\Manish

Singh\Downloads\biker.jpg», _Range(«A1:C10*»)

End Sub

Y esto es lo que obtuve. Exactamente lo que quería.

pasted image 0 (1)

Así que sí. Use este código para insertar una imagen en la celda o rango de Excel. Juega con el código. Intenta insertar diferentes formatos, rangos extraños y mira qué pasa. Si tiene alguna pregunta o enfrenta algún desafío, use la sección de comentarios a continuación para preguntarme.

Descargar archivo

`enlace: /wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Insertar imágenes usando VBA en Microsoft Excel 2016]

Artículos populares:

link: / formulas-and-functions-Introduction-of-vlookup-function [Cómo usar la función VLOOKUP en Excel]

link: / tips-countif-in-microsoft-excel [Cómo usar la función COUNTIF en Excel]

link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel]