Cześć! Próbuję wstrząsnąć deską rozdzielczą znaczącymi zdjęciami. Lub po prostu próbuję wstawić obraz do komórki Excel VBA. Cóż, nie możesz wstawiać zdjęć do komórek programu Excel, ale możesz zmienić ich rozmiar, aby pasowały do komórki programu Excel. Robienie tego ręcznie zajmie dużo czasu i jest denerwujące. Więc jakie jest rozwiązanie? Zgadłeś, makro VBA. Zakodujemy teraz.
Poniżej znajduje się kod Excel vba do wstawiania obrazu z folderu do komórki lub określonego zakresu. Naciśnij Alt+F11, wstaw moduł i skopiuj ten kod.
Nie martw się, wyjaśniłem to poniżej, abyś mógł go zmodyfikować zgodnie z własnymi potrzebami.
Wstaw obraz w komórce Excela z VBA do komórki lub podanego zakresu
PodtestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")
Napis końcowy ' wstawia obraz i zmienia jego rozmiar, aby pasował do zakresu TargetCells Dim p jako obiekt, t jako podwójny, l jako podwójny, w jako podwójny, h jako podwójny Jeśli TypeName (ActiveSheet) "Worksheet" to wyjdź z Sub Jeśli Dir(PictureFileName) = "" Następnie wyjdź z Sub 'importuj zdjęcie Ustaw p = ActiveSheet.Pictures.Insert(PictureFileName) 'określ pozycje' Z komórkami docelowymi t = .Góra l = .W lewo w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top Kończyć z 'Pozycja obrazu Z p .Góra = t .W lewo = l .Szerokość = w .Wysokość = h Kończyć z Ustaw p = Nic Napis końcowy |
Wyjaśnienie:
Część 1:
PodtestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")
Napis końcowy |
Powyższy podprogram wywołuje po prostu nasz główny podprogram InsertPictureInRange, który przyjmuje tylko dwa argumenty. Najpierw adres pliku obrazu z jego nazwą, a drugi Zakres, w którym chcesz wstawić obraz w Excelu.
Część 2:
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)' wstawia obraz i zmienia jego rozmiar, aby dopasować go do zakresu TargetCellsDim p As Object, t As Double, l As Double, w As Double, h As Double
Jeśli TypeName (ActiveSheet) "Worksheet" to wyjdź z Sub Jeśli Dir(PictureFileName) = "" Następnie wyjdź z Sub 'importuj zdjęcie Ustaw p = ActiveSheet.Pictures.Insert(PictureFileName) 'określ pozycje' Z komórkami docelowymi t = .Góra l = .W lewo w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top Kończyć z 'Pozycja obrazu Z p .Góra = t .W lewo = l .Szerokość = w .Wysokość = h Kończyć z Ustaw p = Nic Napis końcowy |
Jest to główny podprogram, który wstawia i zmienia rozmiar obrazu, aby pasował do podanego zakresu. Zagłębmy się w to.
Dim p jako obiekt, t jako podwójny, l jako podwójny, w jako podwójny, h jako podwójny
Ta linia to tylko deklaracja zmiennej, której będziemy potrzebować. Uwaga p Jako zmienna obiektu. Ta zmienna zatrzyma nasz obraz.
Jeśli TypeName (ActiveSheet) "Worksheet" to wyjdź z Sub
Sprawdza, czy Activesheet jest arkuszem roboczym, czy nie. Jeśli tak się nie stanie, natychmiast wyjdzie z kodu i nic się nie stanie.
Jeśli Dir(PictureFileName) = "" Następnie wyjdź z Sub
Sprawdź, czy podałeś adres obrazu, aby wstawić zdjęcie do komórki programu Excel. Jeśli go nie podałeś, natychmiast wyjdzie i nic się nie stanie.
Ustaw p = ActiveSheet.Pictures.Insert(PictureFileName)
To jest najważniejsza linia. W tym wierszu używamy funkcji Wstaw Activesheet. Obiekt Pictures i wstawiamy go do obiektu p, który zadeklarowaliśmy wcześniej. Teraz za pomocą p możemy łatwo dostosować szerokość i długość obrazu.
Z TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top End With
Ten segment po prostu pobiera długość, szerokość, górną i lewą część z podanego zakresu.
Z p .Top = t .Left = l .Szerokość = w Wysokość = h Koniec Z
Ta część dopasowuje obraz do podanego zakresu. I gotowe. Wreszcie, uwalniamy go, ustawiając go na nic.
Ustaw p = Nic
Ta linia wolna pamięć.
Ten kod będzie działał w programach Excel 2016, Excel 2013, Excel 2010 i Excel 2007.
Tutaj chciałem wstawić obraz w zakresie A1:C10. Aby to zrobić, zmodyfikowałem mój kod poniżej
PodtestInsert PictureInRange()InsertPictureInRange "C:\Użytkownicy\Manish Singh\Downloads\bike.jpg", _Zasięg("A1:C10")
Napis końcowy |
I to właśnie dostałem. Dokładnie to, czego chciałem.
Więc tak. Użyj tego kodu, aby wstawić obraz do komórki lub zakresu programu Excel. Baw się kodem. Spróbuj wstawić różne formaty, dziwne zakresy i zobacz, co się stanie. Jeśli masz jakieś pytania lub stoisz przed jakimkolwiek wyzwaniem, skorzystaj z poniższej sekcji komentarzy, aby mnie zapytać.
Pobieranie pliku
Popularne artykuły:
50 skrótów Excela, które zwiększą Twoją produktywność
Jak korzystać z funkcji WYSZUKAJ.PIONOWO w programie Excel
Jak korzystać z funkcji LICZ.JEŻELI w programie Excel
Jak korzystać z funkcji SUMA.JEŻELI w programie Excel