Excel - Una macro para insertar imágenes en una hoja de cálculo
- Problema
- Solución
Problema
Estoy tratando de insertar imágenes en la columna de Excel usando una macro que toma la referencia del nombre de archivo de la celda B2 e inserte la imagen en la celda A2. Por ejemplo: si B2 contiene N235, la imagen que se insertará en A2 sería N235.jpg de la ruta dada en Macro. Esto funciona bien EXCEPTO cuando no hay imagen en la carpeta con el mismo nombre que en la carpeta.- Recibo un error de ejecución 1004 y la Macro se detiene y no puedo completar la imagen después de esa celda.
Solución
Sub imagen ()Dim picname como cadena
Dim pasteAt As Integer
Dim lThisRow como largo
lthisrow = 2
Hacer Mientras (Células (lThisRow, 2) "")
pasteAt = lThisRow
Celdas (pasteAt, 1) .Seleccione 'Aquí es donde se insertará la imagen
picname = Cells (lThisRow, 2) 'Este es el nombre de la imagen
present = Dir ("C: \ Users \ Administrator \ Desktop \ LC \" & picname & ".jpg")
Si está presente "" entonces
ActiveSheet.Pictures.Insert ("C: \ Users \ Administrator \ Desktop \ LC \" & picname & ".jpg"). Seleccione 'Ruta a donde se almacenan las imágenes
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '
'Esto cambia el tamaño de la imagen
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '
Con seleccion
'.Left = Range ("A6"). Left
'.Top = Rango ("A6"). Arriba
.Left = Cells (pasteAt, 1) .Left
.Top = Células (pasteAt, 1) .Top
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 100 #
.ShapeRange.Width = 130 #
.ShapeRange.Rotation = 0 #
Terminar con
Más
Células (pasteAt, 1) = "No se encontró ninguna imagen"
Terminara si
lThisRow = lThisRow + 1
Lazo
Rango ("A10"). Seleccione
Application.ScreenUpdating = True
Subir de salida
ErrNoPhoto:
MsgBox "No se puede encontrar la foto" 'Muestra un cuadro de mensaje si no se encuentra la imagen
Subir de salida
Rango ("B20"). Seleccione
End Sub
Gracias a rizvisa1 por este consejo.