Ako vkladať obrázky pomocou programu Excel VBA

Obsah:

Anonim

Ahoj! Pokúšame sa rozhýbať palubnú dosku zmysluplnými obrázkami. Alebo sa len pokúšate vložiť obrázok do bunky Excel VBA. Obrázky nemôžete vkladať do buniek programu Excel, ale môžete zmeniť ich veľkosť tak, aby sa zmestili do bunky programu Excel. Manuálne to zaberie veľa času a je to nepríjemné. Aké je teda riešenie? Uhádli ste správne, makro VBA. Teraz kódujeme.

Nasleduje kód vba excelu na vloženie obrázku z priečinka do bunky alebo daného rozsahu. Stlačte kombináciu klávesov Alt+F11, vložte modul a skopírujte tento kód.

Nebojte sa, nižšie som to vysvetlil, aby ste to mohli upraviť podľa svojich potrieb.

Vložte obrázok do bunky programu Excel pomocou VBA do bunky alebo daného rozsahu

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

Koniec pod
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range)

'vloží obrázok a zmení jeho veľkosť tak, aby zodpovedal rozsahu TargetCells

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Ak TypeName (ActiveSheet) "pracovný list", potom Ukončite pod

Ak je Dir (PictureFileName) = "" Potom ukončite podpoložku

„importovať obrázok

Nastaviť p = ActiveSheet.Pictures.Insert (PictureFileName)

„určiť polohy

S TargetCells

t = .Najvyššie

l =. Vľavo

w = .Offset (0, .Columns.Count). Vľavo - .Vľavo

h =. Offset (.Rows.Count, 0). Na začiatok -. Na začiatok

Ukončiť s

'pozičný obrázok

S p

.Na začiatok = t

.Vľavo = l

.Šírka = š

.Výška = h

Ukončiť s

Nastaviť p = nič

Koniec pod

Vysvetlenie:

Časť 1:

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

Koniec pod

Vyššie uvedený podprogram iba volá náš hlavný podprogram InsertPictureInRange, ktorý vyžaduje iba dva argumenty. Najprv adresa súboru s jeho názvom a druhý Rozsah, kam chcete obrázok vložiť do Excelu.

Časť 2:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'vloží obrázok a zmení jeho veľkosť tak, aby zodpovedal rozsahu TargetCellsDim p ako objekt, t ako dvojitý, l ako dvojitý, w ako dvojitý, h ako dvojitý

Ak TypeName (ActiveSheet) "pracovný list", potom Ukončite pod

Ak je Dir (PictureFileName) = "" Potom ukončite podpoložku

„importovať obrázok

Nastaviť p = ActiveSheet.Pictures.Insert (PictureFileName)

„určiť polohy

S TargetCells

t = .Najvyššie

l =. Vľavo

w = .Offset (0, .Columns.Count). Vľavo - .Vľavo

h =. Offset (.Rows.Count, 0). Na začiatok -. Na začiatok

Ukončiť s

'pozičný obrázok

S p

.Na začiatok = t

.Vľavo = l

.Šírka = š

.Výška = h

Ukončiť s

Nastaviť p = nič

Koniec pod

Toto je hlavný podprogram, ktorý vkladá a mení veľkosť obrazu tak, aby zodpovedal danému rozsahu. Poďme sa do toho pustiť.

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Tento riadok je iba variabilnou deklaráciou, ktorú budeme potrebovať. Poznámka p Ako premenná objektu. Táto premenná udrží náš obraz.

Ak TypeName (ActiveSheet) "pracovný list", potom Ukončite pod

Skontroluje, či je aktívny list pracovným listom alebo nie. Ak sa tak nestane, kód okamžite opustí a nič sa nestane.

Ak je Dir (PictureFileName) = "" Potom ukončite podpoložku

Skontrolujte, či ste zadali adresu obrázka na vloženie fotografie do bunky programu Excel. Ak ste to neposkytli, okamžite to skončí a nič sa nestane.

Nastaviť p = ActiveSheet.Pictures.Insert (PictureFileName)

Toto je najdôležitejšia línia. V tomto riadku používame funkciu Vložiť v hárku. Obrázky namietajú a vložia ich do objektu p, ktorý sme deklarovali skôr. Teraz pomocou p môžeme ľahko upraviť šírku a dĺžku obrázku.

S TargetCells t = .Najvyššie l = .Vľavo w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0). Top - .Top End With 

Tento segment práve získa z daného rozsahu dĺžku, šírku, hornú a ľavú stranu.

S p. Vrchol = t. Vľavo = l. Šírka = w Výška = h Koniec s

Táto časť upravuje obrázok na daný rozsah. A je hotovo. Nakoniec sme ho oslobodili tak, že sme ho nastavili na nič.

Nastaviť p = nič

Tento riadok uvoľňuje pamäť.

Tento kód bude fungovať v programe Excel 2016, Excel 2013, Excel 2010 a Excel 2007.

Tu som chcel vložiť obrázok v rozsahu A1: C10. Za týmto účelom som nižšie upravil svoj kód

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

Koniec pod

A toto som dostal. Presne to, čo som chcel.


Takže áno. Tento kód použite na vloženie obrázku do bunky alebo rozsahu programu Excel. Hrajte sa s kódom. Skúste vložiť rôzne formáty, podivné rozsahy a uvidíte, čo sa stane. Ak máte akékoľvek otázky alebo čelíte akejkoľvek výzve, opýtajte sa ma v nižšie uvedenej sekcii komentárov.
Stiahnuť súbor

Vkladanie obrázkov pomocou jazyka VBA v programe Microsoft Excel 2016

Populárne články:

50 skratiek programu Excel na zvýšenie produktivity

Ako používať funkciu VLOOKUP v programe Excel

Ako používať funkciu COUNTIF v programe Excel

Ako používať funkciu SUMIF v programe Excel