Kako vstaviti slike z Excelom VBA

Kazalo:

Anonim

Zdravo! Poskusite pretresati armaturno ploščo s pomembnimi slikami. Ali pa samo poskušate vstaviti sliko v celico Excel VBA. No, slik v Excelovih celicah ne morete vstaviti, lahko pa jih spremenite tako, da se prilegajo celici Excel. Ročno izvajanje bo trajalo veliko časa in je nadležno. Kaj je torej rešitev? Prav ste uganili, makro VBA. Zdaj bomo kodirali.

Spodaj je koda excel vba za vstavljanje slike iz mape v celico ali določeno območje. Pritisnite Alt+F11, vstavite modul in kopirajte to kodo.

Brez skrbi, spodaj sem razložil, da ga lahko spremenite glede na svoje potrebe.

Vstavite sliko v celico Excel z VBA v celico ali dano območje

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

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

'vstavi sliko in ji spremeni velikost, da ustreza območju TargetCells

Zatemni p kot objekt, t kot dvojno, l kot dvojno, w kot dvojno, h kot dvojno

Če TypeName (ActiveSheet) "Worksheet" Nato zapustite Sub

Če Dir (PictureFileName) = "" Nato zapustite pod

'uvoz slike

Nastavite p = ActiveSheet.Pictures.Insert (PictureFileName)

'določiti položaje

S TargetCells

t = .Na vrh

l = .Levo

w = .Odmik (0,. Stolpci.Število). Levo - .Levo

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

Končaj s

'slika položaja

S p

.Top = t

.Levo = l

.Širina = w

.Višina = h

Končaj s

Nastavite p = nič

End Sub

Pojasnilo:

1. del:

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

End Sub

Zgornja podprogram kliče samo našo glavno podprogram InsertPictureInRange, ki sprejme le dva argumenta. Najprej naslov slikovne datoteke z njenim imenom in drugi obseg, kamor želite sliko vstaviti v Excel.

2. del:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'vstavi sliko in ji spremeni velikost, da se prilega obsegu TargetCellsDim p kot objekt, t kot dvojno, l kot dvojno, w kot dvojno, h kot dvojno

Če TypeName (ActiveSheet) "Worksheet" Nato zapustite Sub

Če Dir (PictureFileName) = "" Nato zapustite pod

'uvoz slike

Nastavite p = ActiveSheet.Pictures.Insert (PictureFileName)

'določiti položaje

S TargetCells

t = .Na vrh

l = .Levo

w = .Odmik (0,. Stolpci.Število). Levo - .Levo

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

Končaj s

'slika položaja

S p

.Top = t

.Levo = l

.Širina = w

.Višina = h

Končaj s

Nastavite p = nič

End Sub

To je glavna podprogram, ki vstavi in ​​spremeni velikost slike, da ustreza določenemu obsegu. Poglobimo se vanj.

Zatemni p kot objekt, t kot dvojno, l kot dvojno, w kot dvojno, h kot dvojno

Ta vrstica je le spremenljivka, ki jo bomo potrebovali. Opomba p Kot spremenljivka objekta. Ta spremenljivka bo držala našo sliko.

Če TypeName (ActiveSheet) "Worksheet" Nato zapustite Sub

Preverja, ali je aktivni list delovni list ali ne. Če se to ne zgodi, bo kodo takoj zapustil in nič se ne bo zgodilo.

Če Dir (PictureFileName) = "" Nato zapustite pod

Preverite, ali ste za sliko dali naslov za vstavljanje fotografije v celico Excel. Če ga niste zagotovili, bo takoj izstopil in nič se ne bo zgodilo.

Nastavite p = ActiveSheet.Pictures.Insert (PictureFileName)

Zdaj je to najpomembnejša vrstica. V tej vrstici uporabljamo funkcijo Vstavi aktivne liste. Slike ugovarjajo in jih dajo v objekt p, ki smo ga prej razglasili. S pomočjo p lahko preprosto prilagodimo širino in dolžino slike.

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

Ta segment dobi samo dolžino, širino, vrh in levo iz danega območja.

S p .Top = t. Levo = l. Širina = w Višina = h Končaj z

Ta del sliko prilagodi danemu obsegu. In končano je. Nazadnje smo ga osvobodili in ga nastavili na nič.

Nastavite p = nič

Ta vrstica sprosti spomin.

Ta koda bo delovala v programih Excel 2016, Excel 2013, Excel 2010 in Excel 2007.

Tu sem želel sliko vstaviti v obseg A1: C10. V ta namen sem spodaj spremenil svojo kodo

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

End Sub

In to sem dobil. Točno to, kar sem hotel.


Torej, ja. S to kodo vstavite sliko v celico ali obseg Excel. Poigrajte se s kodo. Poskusite vstaviti različne formate, čudne obsege in poglejte, kaj se zgodi. Če imate kakršna koli vprašanja ali se soočate s kakšnim izzivom, me vprašajte v spodnjem razdelku s komentarji.
Prenesite datoteko

Vstavljanje slik z uporabo VBA v Microsoft Excel 2016

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost

Kako uporabljati funkcijo VLOOKUP v Excelu

Kako uporabljati funkcijo COUNTIF v Excelu

Kako uporabljati funkcijo SUMIF v Excelu