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