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