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