Kuidas pilte Excel VBA abil sisestada

Lang L: none (table-of-contents):

Anonim

Tere! Proovin raputada armatuurlauda sisukate piltidega. Või lihtsalt proovige pilti Excel VBA lahtrisse sisestada. Noh, te ei saa pilte Exceli lahtritesse sisestada, kuid saate selle suurust muuta, et see sobiks Exceli lahtrisse. Selle käsitsi tegemine võtab palju aega ja see on tüütu. Mis on siis lahendus? Arvasite õigesti, VBA makro. Nüüd kodeerime.

Allpool on Exceli vba -kood, et lisada pilt kaustast lahtrisse või antud vahemikku. Vajutage klahve Alt+F11, sisestage moodul ja kopeerige see kood.

Ärge muretsege, ma selgitasin seda allpool, et saaksite seda vastavalt oma vajadustele muuta.

Sisestage pilt VBA -ga Exceli lahtrisse lahtrisse või antud vahemikku

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

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

'lisab pildi ja muudab selle suurust vastavalt TargetCells vahemikule

Dim p As objekt, t Nagu Double, l Nagu Topelt, w Nagu Topelt, h Nagu Topelt

Kui TypeName (ActiveSheet) "Tööleht", siis väljuge alammenüüst

Kui Dir (PictureFileName) = "" Siis välju alamist

'impordi pilt

Määra p = ActiveSheet.Pictures.Insert (PictureFileName)

"määrake positsioonid

Koos sihtmärkidega

t = .Ülemine

l = .Vasak

w = .Nihke (0, .Veerud.arv) .Vasak - .Vasak

h = .Lülitus (.Ridade arv, 0). Ülemine -. Ülemine

Lõpeta

'positsioonipilt

Koos lk

.Ülemine = t

.Vasak = l

. Laius = w

.Kõrgus = h

Lõpeta

Määra p = mitte midagi

End Sub

Selgitus:

1. osa:

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

End Sub

Ülaltoodud alamprogramm kutsub lihtsalt meie peamist alamprogrammi InsertPictureInRange, mis võtab ainult kaks argumenti. Esiteks pildifaili aadress koos selle nimega ja teine ​​vahemik, kuhu soovite pildi Excelisse sisestada.

2. osa:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) "lisab pildi ja muudab selle suurust vastavalt TargetCells vahemikule Dim p As Object, t As Double, l As Double, w As Double, h As Double

Kui TypeName (ActiveSheet) "Tööleht", siis väljuge alammenüüst

Kui Dir (PictureFileName) = "" Siis välju alamist

'impordi pilt

Määra p = ActiveSheet.Pictures.Insert (PictureFileName)

"määrake positsioonid

Koos sihtmärkidega

t = .Ülemine

l = .Vasak

w = .Nihke (0, .Veerud.arv) .Vasak - .Vasak

h = .Lülitus (.Ridade arv, 0). Ülemine -. Ülemine

Lõpeta

'positsioonipilt

Koos lk

.Ülemine = t

.Vasak = l

. Laius = w

.Kõrgus = h

Lõpeta

Määra p = mitte midagi

End Sub

See on peamine alamprogramm, mis lisab pildi ja muudab selle suurust vastavalt antud vahemikule. Süveneme sellesse.

Dim p As objekt, t Nagu Double, l Nagu Topelt, w Nagu Topelt, h Nagu Topelt

See rida on lihtsalt muutuv deklaratsioon, mida me vajame. Märkus p Objekti muutujana. See muutuja hoiab meie pilti.

Kui TypeName (ActiveSheet) "Tööleht", siis väljuge alammenüüst

See kontrollib, kas tegevuste leht on tööleht või mitte. Kui ei, siis väljub kood koheselt ja midagi ei juhtu.

Kui Dir (PictureFileName) = "" Siis välju alamist

Kontrollige, kas olete andnud pildile aadressi, kuhu foto Exceli lahtrisse sisestada. Kui te pole seda pakkunud, väljub see kohe ja midagi ei juhtu.

Määra p = ActiveSheet.Pictures.Insert (PictureFileName)

Nüüd on see kõige olulisem rida. Sellel real kasutame aktiivlehe funktsiooni Sisesta. Pildistab objekti ja paneb selle objekti p, mille me varem deklareerisime. Nüüd saame p abil hõlpsalt pildi laiust ja pikkust reguleerida.

Sihtmärkidega t = .Ülemine l = .Vasak w = .Nihke (0, .Veerud.arv) .Vasak - .Vasak h = .Lülitus (.Ridade arv, 0). Ülemine - .Lõpu lõpp 

See segment saab antud vahemikust lihtsalt pikkuse, laiuse, üla- ja vasakpoolsuse.

Kui p. Ülemine = t. Vasak = l. Laius = w Kõrgus = h Lõpeta

See osa kohandab pildi etteantud vahemikule. Ja see on tehtud. Lõpuks vabastasime selle, seades selle tühjaks.

Määra p = mitte midagi

See rida vabastab mälu.

See kood töötab programmides Excel 2016, Excel 2013, Excel 2010 ja Excel 2007.

Siin tahtsin pildi lisada vahemikku A1: C10. Selleks muutsin allpool oma koodi

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

End Sub

Ja seda ma sain. Täpselt see, mida ma tahtsin.


Niisiis, jah. Kasutage seda koodi pildi lisamiseks Exceli lahtrisse või vahemikku. Mängige koodi ümber. Proovige sisestada erinevaid vorminguid, kummalisi vahemikke ja vaadata, mis juhtub. Kui teil on küsimusi või seisate silmitsi mõne väljakutsega, kasutage minult allpool kommentaaride jaotist.
Laadige fail alla

Piltide sisestamine Microsoft Excel 2016 VBA abil

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks

Funktsiooni VLOOKUP kasutamine Excelis

Funktsiooni COUNTIF kasutamine Excelis

Funktsiooni SUMIF kasutamine Excelis