Widziałem wiele postów o nas xlApp.activesheet.Pictures.Insert(strImagePath)
, aby wstawić zdjęcia do arkusza kalkulacyjnego z VBA, który działa świetnie. Jedynym problemem jest wstawienie go jako połączonego obrazu. Więc jeśli wyślę arkusz kalkulacyjny z naszej sieci, obrazy się nie powiodą. Czy ktoś może mi powiedzieć, jak używać Pictures.Insert
, aby umieścić obraz jako osadzony obraz, lub może inną metodę, która umieści go w osadzonym? Wzywam tę metodę również z dostępu, jeśli to w ogóle pomaga.VBA do wstawiania osadzonego obrazu excel
11
A
Odpowiedz
18
można użyć metody shapes.addpicture
activesheet.Shapes.AddPicture Filename:="C:\test\desert.jpg", linktofile:=msoFalse, _
savewithdocument:=msoCTrue, Left:=0, Top:=0, Width:=100, Height:=100
0
pamiętać, że można ustawić żądaną szerokość i parametry Wysokość do 1, który następnie utrzymuje wysokość i szerokość obrazu oryginalnego!
Activesheet.Shapes.AddPicture Filename:="C:\image.jpg", LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, Left:=0, Top:=0, Width:=-1, Height:=-1
http://excelmatters.com/2013/11/25/default-picture-size-with-shapes-addpicture/
(dodane jako kolejna odpowiedź do zwiększenia widoczności jak już zmagał się z tym problemem od wieków i nie znalazłem to rozwiązanie udokumentowany nigdzie indziej.)
Dzięki @JosieP! Działa to świetnie. Teraz próbuję przypisać go do obiektu Shape, aby móc wprowadzić pewne poprawki. Zrobiłem 'Dim shpPic jako Shape' i' Set shpPic = xlApp.activesheet.Shapes.AddPicture ... 'i otrzymałem błąd niedopasowania typu. Każdy pomysł, dlaczego? – DasPete
na podstawie części xlApp Przypuszczam, że automatyzujesz z innej aplikacji - czy ta aplikacja ma obiekty Shape? jeśli tak, użyj 'dim shpPic jako Excel.Shape' – JosieP
Hi @JosieP, tak dzwoni z Access. Nie mogę używać "Excel.Shape", ponieważ nie chcę mieć odniesienia do biblioteki Excel, ponieważ mam użytkowników z szerokim zakresem systemów. Deklarowałem, że moja wersja Excela wygląda następująco: 'Dim xlApp as Object'' Set xlApp = CreateObject ("Excel.Application") 'Więc spróbowałem' Dim shpPic = xlApp.Shape' i to daje mi "Zdefiniowany przez użytkownika typ nie zdefiniowany" błąd. Jakieś pomysły? – DasPete