Kā ievietot attēlus, izmantojot Excel VBA

Satura rādītājs:

Anonim

Sveiki! Mēģina satricināt informācijas paneli ar nozīmīgiem attēliem. Vai vienkārši mēģiniet ievietot attēlu šūnā Excel VBA. Jūs nevarat ievietot attēlus Excel šūnās, bet varat mainīt to izmērus, lai tie ietilptu Excel šūnā. Manuāla darbība prasīs daudz laika, un tas ir kaitinoši. Tātad, kāds ir risinājums? Jūs uzminējāt pareizi, VBA makro. Mēs kodēsim tagad.

Zemāk ir Excel vba kods, lai šūnā vai noteiktā diapazonā ievietotu attēlu no mapes. Nospiediet Alt+F11, ievietojiet moduli un nokopējiet šo kodu.

Neuztraucieties, es to paskaidroju zemāk, lai jūs varētu to mainīt atbilstoši savām vajadzībām.

Ievietojiet attēlu šūnā vai noteiktā diapazonā Excel šūnā ar VBA

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

Beigt apakš
Sub InsertPictureInRange (PictureFileName kā virkne, TargetCells kā diapazons)

'ievieto attēlu un maina tā izmēru, lai tas atbilstu TargetCells diapazonam

Dim p kā objekts, t kā dubultā, l kā dubultā, w kā dubultā, h kā dubultā

Ja TypeName (ActiveSheet) "darblapa", tad izejiet no apakš

Ja Dir (PictureFileName) = "" Tad iziet no apakš

'importēt attēlu

Iestatiet p = ActiveSheet.Pictures.Insert (PictureFileName)

'noteikt pozīcijas

Ar TargetCells

t = .Uz augšu

l =. Pa kreisi

w = .Pārvietojums (0, .Columns.Count). Pa kreisi - .Left

h = .Pārvietojums (.Row.Count, 0). Augšā -. Augšā

Beigt ar

'pozīcijas attēls

Ar p

.Uz augšu = t

. Pa kreisi = l

. Platums = w

.Augstums = h

Beigt ar

Iestatiet p = neko

Beigt apakš

Paskaidrojums:

1. daļa:

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

Beigt apakš

Iepriekš minētā apakšprogramma vienkārši izsauc mūsu galveno apakšprogrammu InsertPictureInRange, kurā ir tikai divi argumenti. Vispirms attēla faila adrese ar nosaukumu un otrais diapazons, kurā vēlaties ievietot attēlu programmā Excel.

2. daļa:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) ”ievieto attēlu un maina tā izmērus, lai tas atbilstu TargetCells diapazonam Dim p As Object, t As Double, l As Double, w As Double, h As Double

Ja TypeName (ActiveSheet) "darblapa", tad izejiet no apakš

Ja Dir (PictureFileName) = "" Tad iziet no apakš

'importēt attēlu

Iestatiet p = ActiveSheet.Pictures.Insert (PictureFileName)

'noteikt pozīcijas

Ar TargetCells

t = .Uz augšu

l =. Pa kreisi

w = .Pārvietojums (0, .Columns.Count). Pa kreisi - .Left

h = .Pārvietojums (.Row.Count, 0). Augšā -. Augšā

Beigt ar

'pozīcijas attēls

Ar p

.Uz augšu = t

. Pa kreisi = l

. Platums = w

.Augstums = h

Beigt ar

Iestatiet p = neko

Beigt apakš

Šī ir galvenā apakšprogramma, kas ievieto un maina attēlu, lai tas atbilstu noteiktajam diapazonam. Iedziļināsimies tajā.

Dim p kā objekts, t kā dubultā, l kā dubultā, w kā dubultā, h kā dubultā

Šī rinda ir tikai mainīga deklarācija, kas mums būs nepieciešama. Piezīme p Kā objekta mainīgais. Šis mainīgais saglabās mūsu attēlu.

Ja TypeName (ActiveSheet) "darblapa", tad izejiet no apakš

Tā pārbauda, ​​vai Aktīvā lapa ir darblapa vai nav. Ja tas nenotiks, tas nekavējoties izies no koda un nekas nenotiks.

Ja Dir (PictureFileName) = "" Tad iziet no apakš

Pārbaudiet, vai esat norādījis attēla adresi, lai ievietotu fotoattēlu Excel šūnā. Ja neesat to nodrošinājis, tas nekavējoties izies un nekas nenotiks.

Iestatiet p = ActiveSheet.Pictures.Insert (PictureFileName)

Tagad šī ir vissvarīgākā līnija. Šajā rindā mēs izmantojam Activesheet funkciju Insert. Attēli iebilst un ievieto to iepriekš paziņotajā objektā p. Tagad, izmantojot p, mēs varam viegli pielāgot attēla platumu un garumu.

Ar TargetCells t = .Augšējais l = .Left w = .Pārvietojums (0, .Columns.Count). Kreisais - .Left h = .Pārvietojums (.Rows.Count, 0). 

Šis segments no noteiktā diapazona iegūst garumu, platumu, augšējo un kreiso pusi.

Ar p. Augšā = t. Kreisais = l. Platums = w Augstums = h Beigt ar

Šī daļa pielāgo attēlu noteiktajam diapazonam. Un tas ir izdarīts. Visbeidzot, mēs to atbrīvojam, iestatot to uz neko.

Iestatiet p = neko

Šī līnija atbrīvo atmiņu.

Šis kods darbosies programmās Excel 2016, Excel 2013, Excel 2010 un Excel 2007.

Šeit es gribēju ievietot attēlu diapazonā A1: C10. Lai to izdarītu, zemāk es mainīju savu kodu

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Lietotāji \ Manish Singh \ Lejupielādes \ biker.jpg", _Range ("A1: C10")

Beigt apakš

Un tas ir tas, ko es saņēmu. Tieši to, ko es gribēju.


Tātad, jā. Izmantojiet šo kodu, lai ievietotu attēlu Excel šūnā vai diapazonā. Spēlējiet ap kodu. Mēģiniet ievietot dažādus formātus, dīvainus diapazonus un redzēt, kas notiek. Ja jums ir kādi jautājumi vai saskaraties ar kādu izaicinājumu, izmantojiet zemāk esošo komentāru sadaļu, lai uzdotu man jautājumu.
Lejupielādēt failu

Ievietojiet attēlus, izmantojot VBA programmā Microsoft Excel 2016

Populāri raksti:

50 Excel saīsnes, lai palielinātu produktivitāti

Kā lietot funkciju VLOOKUP programmā Excel

Kā programmā Excel izmantot funkciju COUNTIF

Kā lietot funkciju SUMIF programmā Excel