Ciao! Cercando di scuotere il cruscotto con immagini significative. O semplicemente cercando di inserire un’immagine nella cella Excel VBA. Bene, non puoi inserire immagini nelle celle Excel ma puoi ridimensionarle per adattarle alla cella Excel.

Farlo manualmente richiederà molto tempo ed è fastidioso. Allora qual è la soluzione? Hai indovinato, una macro VBA. Ora codificheremo.

Di seguito è riportato il codice excel vba per inserire un’immagine da una cartella in una cella o in un determinato intervallo. Premi Alt + F11, inserisci un modulo e copia questo codice.

Non ti preoccupare, l’ho spiegato di seguito in modo da poterlo modificare in base alle tue esigenze.

Inserisci immagine nella cella di Excel con VBA in una cella o in un intervallo specificato [larghezza = “100%”, cols = “100%”,]

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)

‘ inserts a picture and resizes it to fit the TargetCells range

Dim p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

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

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

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

Spiegazione:

Parte 1:

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

La subroutine precedente chiama semplicemente la nostra subroutine principale InsertPictureInRange che accetta solo due argomenti. Innanzitutto l’indirizzo del file immagine con il suo nome e il secondo Intervallo in cui si desidera inserire l’immagine in Excel.

Parte 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim

p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

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

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

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

Questa è la subroutine principale che inserisce e ridimensiona l’immagine per adattarla all’intervallo dato. Analizziamolo.

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Questa riga è solo una dichiarazione di variabile di cui avremo bisogno. Nota p Come variabile oggetto. Questa variabile manterrà la nostra immagine.

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

Controlla se Activesheet è un foglio di lavoro o meno. In caso contrario, uscirà immediatamente dal codice e non accadrà nulla.

If Dir(PictureFileName) = "" Then Exit Sub

Verifica di aver fornito un indirizzo per l’immagine per inserire una foto nella cella di Excel. Se non l’hai fornito, uscirà immediatamente e non succederà nulla.

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

Questa è la linea più importante. In questa riga, stiamo usando la funzione Inserisci di Activesheet. Pictures oggetto e inseriscilo nell’oggetto p che abbiamo dichiarato in precedenza. Ora usando p possiamo facilmente regolare la larghezza e la lunghezza dell’immagine.

With TargetCells

t = .Top

l = .Left

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

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

End With

Questo segmento ottiene solo Lunghezza, Larghezza, Alto e Sinistra dall’intervallo dato.

With p

.Top = t

.Left = l

.Width = w

Height = h

End With

Questa parte adatta l’immagine all’intervallo dato. Ed è fatto. Infine, lo liberiamo impostandolo su nulla.

Set p = Nothing

Questa linea libera la memoria.

Questo codice funzionerà in Excel 2016, Excel 2013, Excel 2010 ed Excel 2007.

Qui volevo inserire l’immagine nel range A1: C10. Per fare questo, ho modificato il mio codice sotto [width = “100%”, cols = “100%”,]

Sub TestInsertPictureInRange()InsertPictureInRange “*C:\Users\Manish

Singh\Downloads\biker.jpg”, _Range(“A1:C10*”)

End Sub

E questo è quello che ho ottenuto. Esattamente quello che volevo.

pasted image 0 (1)

Quindi, sì. Usa questo codice per inserire un’immagine nella cella o nell’intervallo di Excel. Gioca intorno al codice. Prova a inserire formati diversi, intervalli strani e guarda cosa succede. Se hai domande o stai affrontando qualsiasi sfida, usa la sezione commenti qui sotto per chiedermelo.

Scarica il file

`link: /wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Inserisci immagini usando VBA in Microsoft Excel 2016]

Articoli popolari:

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [Come usare la funzione CERCA.VERT in Excel]

link: / tips-countif-in-microsoft-excel [Come usare la funzione CONTA.SE in Excel]

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel]