Slik setter du inn bilder ved hjelp av Excel VBA

Innholdsfortegnelse:

Anonim

Hei der! Prøver å rocke dashbordet med meningsfulle bilder. Eller bare prøver å sette inn bilde i cellen Excel VBA. Vel, du kan ikke sette inn bilder i excel -celler, men du kan endre størrelsen på den slik at den passer inn i excel -cellen. Det vil ta mye tid å gjøre det manuelt, og det er irriterende. Så hva er løsningen? Du gjettet riktig, en VBA -makro. Vi koder nå.

Nedenfor er excel vba -koden for å sette inn bilde fra en mappe i en celle eller et gitt område. Trykk Alt+F11, sett inn en modul og kopier denne koden.

Ikke bekymre deg, jeg har forklart det nedenfor slik at du kan endre det etter dine behov.

Sett inn bilde i Excel -celle med VBA i en celle eller et gitt område

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

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

'setter inn et bilde og endrer størrelsen på det for å passe til TargetCells -serien

Dim p Som objekt, t Som Dobbel, l Som Dobbel, w Som Dobbel, h Som Dobbel

Hvis TypeName (ActiveSheet) "Regneark", avslutt deretter Sub

Hvis Dir (PictureFileName) = "" Avslutt deretter Sub

import bilde

Sett p = ActiveSheet.Pictures.Insert (PictureFileName)

'bestemme posisjoner

Med TargetCells

t = .Topp

l =. venstre

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

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

Slutt med

'posisjonsbilde

Med s

.Topp = t

.Venstre = l

.Bredde = w

. Høyde = h

Slutt med

Sett p = ingenting

Slutt Sub

Forklaring:

Del 1:

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

Slutt Sub

Subrutinen ovenfor kaller bare vår hovedrutine InsertPictureInRange som bare tar to argumenter. Først adressen til bildefilen med navnet og det andre området der du vil sette inn bildet i Excel.

Del 2:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'setter inn et bilde og endrer størrelsen på det slik at 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", avslutt deretter Sub

Hvis Dir (PictureFileName) = "" Avslutt deretter Sub

import bilde

Sett p = ActiveSheet.Pictures.Insert (PictureFileName)

'bestemme posisjoner

Med TargetCells

t = .Topp

l =. venstre

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

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

Slutt med

'posisjonsbilde

Med s

.Topp = t

.Venstre = l

.Bredde = w

. Høyde = h

Slutt med

Sett p = ingenting

Slutt Sub

Dette er hovedprogrammet som setter inn og endrer størrelsen på bildet for å passe til det gitte området. La oss grave i det.

Dim p Som objekt, t Som Dobbel, l Som Dobbel, w Som Dobbel, h Som Dobbel

Denne linjen er bare en variabel erklæring som vi trenger. Merknad p Som objektvariabel. Denne variabelen holder bildet vårt.

Hvis TypeName (ActiveSheet) "Regneark", avslutt deretter Sub

Den sjekker om Activesheet er et regneark eller ikke. Hvis den ikke gjør det, vil den gå ut av koden umiddelbart og ingenting vil skje.

Hvis Dir (PictureFileName) = "" Avslutt deretter Sub

Kontroller at du har oppgitt en adresse for bildet for å sette inn et foto i excelcellen. Hvis du ikke har gitt det, vil det gå ut umiddelbart og ingenting vil skje.

Sett p = ActiveSheet.Pictures.Insert (PictureFileName)

Dette er den viktigste linjen. På denne linjen bruker vi Sett inn -funksjonen i Activesheet. Bilder objekt og sette det inn i objektet p som vi erklærte tidligere. Ved å bruke p kan vi enkelt justere bredden og lengden på bildet.

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

Dette segmentet får bare lengde, bredde, topp og venstre fra det gitte området.

Med s. Topp = t. Venstre = l. Bredde = w Høyde = h Avslutt med

Denne delen justerer bildet til det gitte området. Og det er gjort. Til slutt satte vi den fri ved å sette den til ingenting.

Sett p = ingenting

Denne linjens frie minne.

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

Her ønsket jeg å sette inn bildet i område A1: C10. For å gjøre dette endret jeg koden min nedenfor

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Users \ Manish Singh \ Downloads \ biker.jpg", _Område("A1: C10")

Slutt Sub

Og dette er hva jeg fikk. Akkurat det jeg ønsket.


Så ja. Bruk denne koden til å sette inn et bilde i Excel -cellen eller området. Spill deg rundt koden. Prøv å sette inn forskjellige formater, merkelige områder og se hva som skjer. Hvis du har spørsmål eller står overfor noen utfordring, kan du bruke kommentarfeltet nedenfor for å stille meg.
Last ned fil

Sett inn bilder ved hjelp av VBA i Microsoft Excel 2016

Populære artikler:

50 Excel -snarveier for å øke produktiviteten

Slik bruker du VLOOKUP -funksjonen i Excel

Slik bruker du COUNTIF -funksjonen i Excel

Slik bruker du SUMIF -funksjonen i Excel