¡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 adivinaste bien, una macro VBA. Codificaremos ahora.
A continuación se muestra el código vba de Excel para insertar una imagen de una carpeta en una celda o en 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.
Inserte una imagen en una celda de Excel con VBA en una celda o un rango dado
Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")
End Sub 'inserta una imagen y la cambia de tamaño para que se ajuste al rango de TargetCells Dim p como objeto, t como doble, l como doble, w como doble, h como doble Si TypeName (ActiveSheet) "Worksheet", salga de Sub Si Dir (PictureFileName) = "" Entonces salga de Sub 'importar imagen Establecer p = ActiveSheet.Pictures.Insert (PictureFileName) 'determinar posiciones Con TargetCells t = .Top l = .Izquierda w = .Desplazamiento (0, .Columnas.Cuenta) .Izquierda - .Izquierda h = .Desplazamiento (.Rows.Count, 0) .Top - .Top Terminar con 'imagen de posición Con p .Top = t .Izquierda = l .Ancho = w .Altura = h Terminar con Establecer p = Nada 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 toma solo 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) 'inserta una imagen y la cambia de tamaño para que se ajuste al rango de TargetCells Dim p As Object, t As Double, l As Double, w As Double, h As Double
Si TypeName (ActiveSheet) "Worksheet", salga de Sub Si Dir (PictureFileName) = "" Entonces salga de Sub 'importar imagen Establecer p = ActiveSheet.Pictures.Insert (PictureFileName) 'determinar posiciones Con TargetCells t = .Top l = .Izquierda w = .Desplazamiento (0, .Columnas.Cuenta) .Izquierda - .Izquierda h = .Desplazamiento (.Rows.Count, 0) .Top - .Top Terminar con 'imagen de posición Con p .Top = t .Izquierda = l .Ancho = w .Altura = h Terminar con Establecer p = Nada 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 como objeto, t como doble, l como doble, w como doble, h como doble
Esta línea es solo una declaración de variable que necesitaremos. Nota p Como variable de objeto. Esta variable contendrá nuestra imagen.
Si TypeName (ActiveSheet) "Worksheet", salga de Sub
Comprueba si la hoja activa es una hoja de trabajo o no. Si no es así, saldrá del código inmediatamente y no sucederá nada.
Si Dir (PictureFileName) = "" Entonces salga de 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.
Establecer 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 largo de la imagen.
Con TargetCells t = .Top l = .Left w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0) .Top - .Top Finalizar con
Este segmento solo obtiene Longitud, Ancho, Superior e Izquierda del rango dado.
Con p .Top = t .Left = l .Ancho = w Alto = h Termina con
Esta parte ajusta la imagen al rango dado. Y esta hecho. Por último, lo liberamos poniéndolo en nada.
Establecer p = Nada
Esta línea libera la memoria.
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 a continuación
Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Usuarios \ Manish Singh \ Descargas \ biker.jpg", _Distancia("A1: C10")
End Sub |
Y esto es lo que obtuve. Exactamente lo que quería.
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
Articulos populares:
50 accesos directos de Excel para aumentar su productividad
Cómo utilizar la función BUSCARV en Excel
Cómo usar la función CONTAR.SI en Excel
Cómo utilizar la función SUMIF en Excel