Excel - En Macro för att infoga bilder i ett kalkylblad
- Problem
- Lösning
Problem
Jag försöker lägga in bilder i Excel-kolumnen med hjälp av makro som tar filnamnet refrence från B2-cellen och sätt in bilden i A2-cellen. Till exempel: Om B2 innehåller N235 kommer bilden som kommer att införas i A2 att vara N235.jpg från den angivna sökvägen i Macro. Det fungerar bra bortsett från när det inte finns någon bild i mappen med samma namn som i mappen.- Jag får ett runtime error 1004 och Macro stannar och kan inte fylla bild efter den cellen.
Lösning
Underbild ()Dim bildnamn som sträng
Dim pasteAt As Integer
Mått lThisRow så länge
lThisRow = 2
Gör medan (celler (lThisRow, 2) "")
pasteAt = lThisRow
Celler (pasteAt, 1) .Välj "Här kommer bilden att infogas
picname = Celler (lThisRow, 2) 'Detta är bildnamnet
nuvarande = Dir ("C: \ Användare \ Administratör \ Desktop \ LC \" & picname & ".jpg")
Om närvarande "" Då
ActiveSheet.Pictures.Insert ("C: \ Users \ Administrator \ Desktop \ LC \" & picname & ".jpg"). Välj "Vägen till var bilder lagras
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '''
'Detta ändrar bilden
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '''
Med urval
'.Left = Range ("A6"). Vänster
'.Top = Range ("A6"). Överst
.Left = celler (pasteAt, 1) .Left
.Top = celler (pasteAt, 1) .Top
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 100 #
.ShapeRange.Width = 130 #
.ShapeRange.Rotation = 0 #
Sluta med
Annan
Celler (pasteAt, 1) = "Ingen bild hittades"
Avsluta om
lThisRow = lThisRow + 1
Slinga
Range ( "A10"). Välj
Application.ScreenUpdating = True
Exit Sub
ErrNoPhoto:
MsgBox "Kan inte hitta foto" 'Visar meddelandebox om bilden inte hittades
Exit Sub
Range ( "B20"). Välj
Slutdel
Tack till rizvisa1 för detta tips.