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 '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
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