Cum se inserează imagini utilizând Excel VBA

Cuprins:

Anonim

Bună! Încercând să balansați tabloul de bord cu imagini semnificative. Sau doar încercarea de a insera imaginea în celula Excel VBA. Ei bine, nu puteți insera imagini în celulele Excel, dar le puteți redimensiona pentru a se potrivi în celula Excel. Efectuarea manuală va dura mult timp și este enervant. Deci, care este soluția? Ai ghicit bine, un Macro VBA. Vom codifica acum.

Mai jos este codul vba excel pentru a insera imaginea dintr-un folder într-o celulă sau într-un interval dat. Apăsați Alt + F11, introduceți un modul și copiați acest cod.

Nu vă faceți griji, am explicat-o mai jos, astfel încât să o puteți modifica în funcție de nevoile dvs.

Introduceți imagine în celulă Excel cu VBA într-o celulă sau într-un interval dat

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

Sfârșitul Sub
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range)

'introduce o imagine și o redimensionează pentru a se potrivi cu gama TargetCells

Dim p Ca obiect, t Ca dublu, l Ca dublu, w Ca dublu, h Ca dublu

Dacă TypeName (ActiveSheet) "Foaie de lucru", apoi ieșiți din Sub

Dacă Dir (PictureFileName) = "" Apoi ieșiți din Sub

'poza de import

Setați p = ActiveSheet.Pictures.Insert (PictureFileName)

'determina pozitii

Cu TargetCells

t = .Top

l = .Stânga

w = .Offset (0, .Columns.Count) .Left - .Left

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

Se termina cu

'poza pozitiei

Cu p

.Top = t

.Stânga = l

.Lățime = w

.Înălțime = h

Se termina cu

Set p = Nimic

Sfârșitul Sub

Explicaţie:

Partea 1:

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

Sfârșitul Sub

Subrutina de mai sus apelează doar subrutina noastră principală InsertPictureInRange care ia doar două argumente. Mai întâi adresa fișierului imagine cu numele său și al doilea interval în care doriți să inserați imaginea în Excel.

Partea 2:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'inserează o imagine și o redimensionează pentru a se potrivi cu gama TargetCells Dim p Ca obiect, t Ca dublu, l Ca dublu, w Ca dublu, h Ca dublu

Dacă TypeName (ActiveSheet) "Foaie de lucru", apoi ieșiți din Sub

Dacă Dir (PictureFileName) = "" Apoi ieșiți din Sub

'poza de import

Setați p = ActiveSheet.Pictures.Insert (PictureFileName)

'determina pozitii

Cu TargetCells

t = .Top

l = .Stânga

w = .Offset (0, .Columns.Count) .Left - .Left

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

Se termina cu

'poza pozitiei

Cu p

.Top = t

.Stânga = l

.Lățime = w

.Înălțime = h

Se termina cu

Set p = Nimic

Sfârșitul Sub

Acesta este subrutina principală care inserează și redimensionează imaginea pentru a se potrivi cu intervalul dat. Să ne adâncim.

Dim p Ca obiect, t Ca dublu, l Ca dublu, w Ca dublu, h Ca dublu

Această linie este doar o declarație variabilă de care vom avea nevoie. Notă p Ca variabilă obiect. Această variabilă va păstra imaginea noastră.

Dacă TypeName (ActiveSheet) "Foaie de lucru", apoi ieșiți din Sub

Se verifică dacă foaia de activități este sau nu o foaie de lucru. Dacă nu, va ieși imediat din cod și nu se va întâmpla nimic.

Dacă Dir (PictureFileName) = "" Apoi ieșiți din Sub

Verificați dacă ați furnizat o adresă pentru imagine pentru a insera o fotografie în celula excel. Dacă nu l-ați furnizat, va ieși imediat și nu se va întâmpla nimic.

Setați p = ActiveSheet.Pictures.Insert (PictureFileName)

Acum, aceasta este cea mai importantă linie. În această linie, folosim funcția Insert din Activesheet. Imaginile obiectează și pune-l în obiectul p pe care l-am declarat mai devreme. Acum folosind p putem regla cu ușurință lățimea și lungimea imaginii.

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

Acest segment obține doar Lungime, Lățime, Sus și Stânga din intervalul dat.

Cu p .Top = t .Left = l .Lățime = w Înălțime = h Sfârșit cu

Această parte ajustează imaginea la intervalul dat. Și s-a făcut. În sfârșit, l-am eliberat, lăsându-l la nimic.

Set p = Nimic

Memoria acestei linii gratuite.

Acest cod va funcționa în Excel 2016, Excel 2013, Excel 2010 și Excel 2007.

Aici am vrut să introduc imaginea în intervalul A1: C10. Pentru a face acest lucru, mi-am modificat codul de mai jos

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

Sfârșitul Sub

Și asta am primit. Exact ceea ce îmi doream.


Deci da. Utilizați acest cod pentru a insera o imagine în celula sau intervalul Excel. Joacă în jurul codului. Încercați să inserați diferite formate, intervale ciudate și să vedeți ce se întâmplă. Dacă aveți întrebări sau vă confruntați cu orice provocare, folosiți secțiunea de comentarii de mai jos pentru a mă întreba.
Descărcare fișier

Inserați imagini utilizând VBA în Microsoft Excel 2016

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea

Cum se utilizează funcția VLOOKUP în Excel

Cum se utilizează funcția COUNTIF în Excel

Cum se utilizează funcția SUMIF în Excel