Я видел много сообщений о нас xlApp.activesheet.Pictures.Insert(strImagePath)
, чтобы вставлять картинки в электронную таблицу с помощью VBA, которая отлично работает. Единственная проблема заключается в том, что он вставляет его как связанную картинку. Поэтому, если я отправлю электронную таблицу из нашей сети, изображения не удастся. Может ли кто-нибудь сказать мне, как использовать Pictures.Insert
для размещения изображения в виде встроенного изображения, или, может быть, другого метода, который поместит его в него? Я также называю этот метод доступным, если это вообще помогает.
VBA для вставки встроенного изображения excel
Ответ 1
вы можете использовать метод shape.addpicture
activesheet.Shapes.AddPicture Filename:="C:\test\desert.jpg", linktofile:=msoFalse, _
savewithdocument:=msoCTrue, Left:=0, Top:=0, Width:=100, Height:=100
Ответ 2
Обратите внимание, что вы можете установить требуемые параметры Width и Height равными -1, которые затем сохраняют высоту и ширину исходного изображения!
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/
(Добавлен как еще один ответ, чтобы увеличить видимость, поскольку я долгое время боролся с этой проблемой и не нашел это решение документированным где-либо еще.)
Ответ 3
Activesheet.Shapes.AddPicture Filename:="C:\image.jpg", LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, Left:=0, Top:=0, Width:=-1, Height:=-1
это работает, возможно, следующий код может помочь кому-то (это помогло мне), вот как вы выбираете только что добавленное изображение:
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Select