Kako umetnuti slike pomoću programa Excel VBA

Sadržaj:

Anonim

Bok tamo! Pokušavam ljuljati nadzornu ploču sa značajnim slikama. Ili samo pokušavate umetnuti sliku u ćelijski Excel VBA. Pa, ne možete umetnuti slike u Excel ćelije, ali možete im promijeniti veličinu da se uklope u Excel ćeliju. Ručno izvođenje oduzet će puno vremena i neugodno je. Dakle, koje je rješenje? Pogodili ste dobro, VBA makronaredba. Sada ćemo kodirati.

Ispod je Excel vba kod za umetanje slike iz mape u ćeliju ili zadani raspon. Pritisnite Alt+F11, umetnite modul i kopirajte ovaj kôd.

Ne brinite, dolje sam vam objasnio kako biste ga mogli izmijeniti prema svojim potrebama.

Umetnite sliku u Excel ćeliju s VBA u ćeliju ili zadani raspon

Pod TestInsertPictureInRange () InsertPictureInRange "C: \ Ime mape \ Ime slike_datoteke.gif", _Range ("B5: D10")

Kraj podm
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range)

'ubacuje sliku i mijenja joj veličinu kako bi odgovarala rasponu TargetCells

Dim p kao objekt, t kao dvostruko, l kao dvostruko, w kao dvostruko, h kao dvostruko

Ako TypeName (ActiveSheet) "Worksheet", tada izađite iz Sub

Ako Dir (PictureFileName) = "" Zatim izađite iz podv

'uvoz slike

Postavite p = ActiveSheet.Pictures.Insert (PictureFileName)

'odrediti pozicije

Uz TargetCells

t = .Najviše

l = .Lijevo

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

h = .Offset (.Redovi.Broj, 0) .Top - .Top

Završi s

'slika položaja

Uz str

.Top = t

.Lijevo = l

.Širina = w

.Visina = h

Završi s

Postavite p = Ništa

Kraj podm

Obrazloženje:

1. dio:

Pod TestInsertPictureInRange () InsertPictureInRange "C: \ Ime mape \ Ime slike_datoteke.gif", _Range ("B5: D10")

Kraj podm

Gornja potprogram samo poziva našu glavnu potprogram InsertPictureInRange koja uzima samo dva argumenta. Prvo adresa slikovne datoteke s njezinim imenom i drugi raspon u koji želite umetnuti sliku u Excel.

2. dio:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'ubacuje sliku i mijenja joj veličinu tako da odgovara rasponu TargetCellsDim p Kao objekt, t Kao dvostruko, l Kao dvostruko, w Kao dvostruko, h Kao dvostruko

Ako TypeName (ActiveSheet) "Worksheet", tada izađite iz Sub

Ako Dir (PictureFileName) = "" Zatim izađite iz podv

'uvoz slike

Postavite p = ActiveSheet.Pictures.Insert (PictureFileName)

'odrediti pozicije

Uz TargetCells

t = .Najviše

l = .Lijevo

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

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

Završi s

'slika položaja

Uz str

.Top = t

.Lijevo = l

.Širina = w

.Visina = h

Završi s

Postavite p = Ništa

Kraj podm

Ovo je glavna potprogram koja ubacuje i mijenja veličinu slike kako bi odgovarala zadanom rasponu. Zaronimo u to.

Dim p kao objekt, t kao dvostruko, l kao dvostruko, w kao dvostruko, h kao dvostruko

Ovaj redak je samo varijabla koja nam je potrebna. Napomena p Kao varijablu objekta. Ova varijabla će zadržati našu sliku.

Ako TypeName (ActiveSheet) "Worksheet", tada izađite iz Sub

On provjerava je li aktivni list radni list ili nije. Ako to ne učini, odmah će izaći iz koda i ništa se neće dogoditi.

Ako Dir (PictureFileName) = "" Zatim izađite iz podv

Provjerite jeste li unijeli adresu slike za umetanje fotografije u ćeliju programa Excel. Ako ga niste dostavili, odmah će izaći i ništa se neće dogoditi.

Postavite p = ActiveSheet.Pictures.Insert (PictureFileName)

Ovo je najvažnija linija. U ovom retku koristimo funkciju Umetanje aktivne tablice. Slike prigovaraju i stavljaju ga u objekt p koji smo ranije deklarirali. Sada pomoću p možemo jednostavno prilagoditi širinu i duljinu slike.

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

Ovaj segment samo dobiva Duljinu, Širinu, Gore i Lijevo iz zadanog raspona.

S p .Top = t .Lijevo = l. Širina = w Visina = h Završi s

Ovaj dio prilagođava sliku zadanom rasponu. I gotovo je. Na kraju, oslobodili smo ga postavljanjem na ništa.

Postavite p = Ništa

Ova linija oslobađa memoriju.

Ovaj kôd će raditi u programima Excel 2016, Excel 2013, Excel 2010 i Excel 2007.

Ovdje sam želio umetnuti sliku u raspon A1: C10. Da bih to učinio, dolje sam izmijenio svoj kôd

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Korisnici \ Manish Singh \ Preuzimanja \ biker.jpg", _Range ("A1: C10")

Kraj podm

I ovo sam dobio. Upravo ono što sam želio.


Pa da. Pomoću ovog koda umetnite sliku u ćeliju ili raspon programa Excel. Igrajte se oko koda. Pokušajte umetnuti različite formate, čudne raspone i vidjeti što će se dogoditi. Ako imate bilo kakvih pitanja ili ste suočeni s izazovom, koristite donji odjeljak komentara da biste me pitali.
Preuzmi datoteku

Umetanje slika pomoću VBA u Microsoft Excel 2016

Popularni članci:

50 Excel prečaca za povećanje vaše produktivnosti

Kako koristiti funkciju VLOOKUP u Excelu

Kako koristiti funkciju COUNTIF u Excelu

Kako koristiti funkciju SUMIF u Excelu