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.

Tidigare Artikel Nästa Artikel

Bästa Tipsen