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 in 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. Codificheremo ora.
Di seguito è riportato il codice vba excel per inserire l'immagine da una cartella in una cella o in un determinato intervallo. Premi Alt+F11, inserisci un modulo e copia questo codice.
Non preoccuparti, l'ho spiegato di seguito in modo che tu possa modificarlo in base alle tue esigenze.
Inserisci immagine nella cella di Excel con VBA in una cella o in un determinato intervallo
Sub TestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")
Fine sottotitolo ' inserisce un'immagine e la ridimensiona per adattarla alla gamma TargetCells Dim p come oggetto, t come doppio, l come doppio, w come doppio, h come doppio Se TypeName (ActiveSheet) "Foglio di lavoro" quindi esci da Sub If Dir(PictureFileName) = "" Then Exit Sub 'importa immagine Imposta p = ActiveSheet.Pictures.Insert(PictureFileName) 'determinare le posizioni Con TargetCells t = .In alto l = .sinistra w = .Offset(0, .Colonne.Conteggio).Sinistra - .Sinistra h = .Offset(.Righe.Conteggio, 0).In alto - .In alto Termina con 'immagine di posizione Con p .In alto = t .Sinistra = l .Larghezza = w .Altezza = h Termina con Imposta p = Niente Fine sottotitolo |
Spiegazione:
Parte 1:
Sub TestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")
Fine sottotitolo |
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)' inserisce un'immagine e la ridimensiona per adattarla all'intervallo TargetCellsDim p As Object, t As Double, l As Double, w As Double, h As Double
Se TypeName (ActiveSheet) "Foglio di lavoro" quindi esci da Sub If Dir(PictureFileName) = "" Then Exit Sub 'importa immagine Imposta p = ActiveSheet.Pictures.Insert(PictureFileName) 'determinare le posizioni Con TargetCells t = .In alto l = .sinistra w = .Offset(0, .Colonne.Conteggio).Sinistra - .Sinistra h = .Offset(.Righe.Conteggio, 0).In alto - .In alto Termina con 'immagine di posizione Con p .In alto = t .Sinistra = l .Larghezza = w .Altezza = h Termina con Imposta p = Niente Fine sottotitolo |
Questa è la subroutine principale che inserisce e ridimensiona l'immagine per adattarla all'intervallo specificato. Approfondiamo.
Dim p come oggetto, t come doppio, l come doppio, w come doppio, h come doppio
Questa riga è solo una dichiarazione di variabile di cui avremo bisogno. Nota p Come variabile oggetto. Questa variabile manterrà la nostra immagine.
Se TypeName (ActiveSheet) "Foglio di lavoro" quindi esci da 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 excel. Se non lo hai fornito, uscirà immediatamente e non succederà nulla.
Imposta p = ActiveSheet.Pictures.Insert(PictureFileName)
Ora, questa è la linea più importante. In questa riga, stiamo usando la funzione Inserisci di Activesheet. Pictures e inserirlo nell'oggetto p che abbiamo dichiarato in precedenza. Ora usando p possiamo facilmente regolare la larghezza e la lunghezza dell'immagine.
Con 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, Superiore e Sinistra dall'intervallo specificato.
Con p .In alto = t .Sinistra = l .Larghezza = w Altezza = h Fine con
Questa parte regola l'immagine nell'intervallo specificato. Ed è fatto. Infine, lo liberiamo impostandolo su niente.
Imposta p = Niente
Questa linea libera la memoria.
Questo codice funzionerà in Excel 2016, Excel 2013, Excel 2010 ed Excel 2007.
Qui volevo inserire l'immagine nell'intervallo A1: C10. Per fare ciò, ho modificato il mio codice qui sotto
Sub TestInsertPictureInRange()InsertPictureInRange "C:\Utenti\Manish Singh\Downloads\biker.jpg", _Gamma("A1:C10")
Fine sottotitolo |
E questo è quello che ho ottenuto. Esattamente quello che volevo.
Quindi, sì. Usa questo codice per inserire un'immagine nella cella o nell'intervallo di Excel. Gioca con il codice. Prova a inserire formati diversi, intervalli strani e guarda cosa succede. Se hai domande o stai affrontando una sfida, usa la sezione commenti qui sotto per chiedermelo.
Download file
Articoli popolari:
50 scorciatoie di Excel per aumentare la produttività
Come utilizzare la funzione CERCA.VERT in Excel
Come utilizzare la funzione CONTA.SE in Excel
Come utilizzare la funzione SOMMA.SE in Excel