Sådan indsættes billeder ved hjælp af Excel VBA

Indholdsfortegnelse:

Anonim

Hej! Forsøger at rocke instrumentbrættet med meningsfulde billeder. Eller bare forsøger at indsætte billede i celle Excel VBA. Nå, du kan ikke indsætte billeder i excel -celler, men du kan ændre størrelsen på den, så den passer ind i excel -celler. Det vil tage meget tid at gøre det manuelt, og det er irriterende. Så hvad er løsningen? Du gættede det rigtigt, en VBA -makro. Vi koder nu.

Nedenfor er excel vba -koden til at indsætte billede fra en mappe i en celle eller et givet område. Tryk på Alt+F11, indsæt et modul, og kopier denne kode.

Bare rolig, jeg har forklaret det herunder, så du kan ændre det efter dine behov.

Indsæt billede i Excel -celle med VBA i en celle eller et givet område

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")

Afslut Sub
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range)

'indsætter et billede og ændrer størrelsen på det, så det passer til TargetCells -området

Dim p som objekt, t som dobbelt, l som dobbelt, w som dobbelt, h som dobbelt

Hvis TypeName (ActiveSheet) "Regneark" derefter afslutter Sub

Hvis Dir (PictureFileName) = "" Afslut derefter Sub

'import billede

Indstil p = ActiveSheet.Pictures.Insert (PictureFileName)

'bestemme positioner

Med TargetCells

t = .Top

l =. venstre

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

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

Afslut med

'positionsbillede

Med s

.Top = t

.Venstre = l

.Bredde = w

.Højde = h

Afslut med

Indstil p = Intet

Afslut Sub

Forklaring:

Del 1:

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")

Afslut Sub

Ovenstående underprogram kalder bare vores vigtigste underprogram InsertPictureInRange, der kun tager to argumenter. Først adressen på billedfilen med dens navn og det andet område, hvor du vil indsætte billedet i Excel.

Del 2:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'indsætter et billede og ændrer størrelsen på det, så det passer til TargetCells -området Dim p som objekt, t som dobbelt, l som dobbelt, w som dobbelt, h som dobbelt

Hvis TypeName (ActiveSheet) "Regneark" derefter afslutter Sub

Hvis Dir (PictureFileName) = "" Afslut derefter Sub

'import billede

Indstil p = ActiveSheet.Pictures.Insert (PictureFileName)

'bestemme positioner

Med TargetCells

t = .Top

l =. venstre

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

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

Afslut med

'positionsbillede

Med s

.Top = t

.Venstre = l

.Bredde = w

.Højde = h

Afslut med

Indstil p = Intet

Afslut Sub

Dette er den vigtigste underprogram, der indsætter og ændrer størrelsen på billedet, så det passer til det givne område. Lad os grave i det.

Dim p som objekt, t som dobbelt, l som dobbelt, w som dobbelt, h som dobbelt

Denne linje er bare en variabel erklæring, som vi får brug for. Bemærk p Som objektvariabel. Denne variabel holder vores billede.

Hvis TypeName (ActiveSheet) "Regneark" derefter afslutter Sub

Det kontrollerer, om Activesheet er et regneark eller ej. Hvis det ikke gør det, forlader det koden med det samme, og der sker ikke noget.

Hvis Dir (PictureFileName) = "" Afslut derefter Sub

Kontroller, at du har angivet en adresse til billedet for at indsætte et foto i excel -cellen. Hvis du ikke har givet det, vil det afslutte med det samme, og der vil ikke ske noget.

Indstil p = ActiveSheet.Pictures.Insert (PictureFileName)

Nu er dette den vigtigste linje. I denne linje bruger vi funktionen Indsæt i Activesheet. Billeder objekt og sætte det i objektet p, som vi erklærede tidligere. Nu ved hjælp af p kan vi nemt justere billedets bredde og længde.

Med TargetCells t = .Top l = .Left w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0) .Top - .Top End With 

Dette segment får bare længde, bredde, top og venstre fra det givne område.

Med s. Top = t. Venstre = l. Bredde = w Højde = h Afslut med

Denne del justerer billedet til det givne område. Og det er gjort. Endelig satte vi det fri ved at sætte det til ingenting.

Indstil p = Intet

Denne linje fri hukommelse.

Denne kode fungerer i Excel 2016, Excel 2013, Excel 2010 og Excel 2007.

Her ville jeg indsætte billedet i område A1: C10. For at gøre dette ændrede jeg min kode herunder

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Brugere \ Manish Singh \ Downloads \ biker.jpg", _Rækkevidde("A1: C10")

Afslut Sub

Og det er det, jeg har fået. Præcis hvad jeg ville.


Så ja. Brug denne kode til at indsætte et billede i Excel -cellen eller -området. Spil om koden. Prøv at indsætte forskellige formater, mærkelige intervaller og se, hvad der sker. Hvis du har spørgsmål eller står over for en udfordring, skal du bruge kommentarfeltet herunder til at stille mig.
Download fil

Indsæt billeder ved hjælp af VBA i Microsoft Excel 2016

Populære artikler:

50 Excel -genveje til at øge din produktivitet

Sådan bruges VLOOKUP -funktionen i Excel

Sådan bruges funktionen COUNTIF i Excel

Sådan bruges SUMIF -funktionen i Excel