VBA для вставки встроенного изображения excel

Я видел много сообщений о нас xlApp.activesheet.Pictures.Insert(strImagePath), чтобы вставлять картинки в электронную таблицу с помощью VBA, которая отлично работает. Единственная проблема заключается в том, что он вставляет его как связанную картинку. Поэтому, если я отправлю электронную таблицу из нашей сети, изображения не удастся. Может ли кто-нибудь сказать мне, как использовать Pictures.Insert для размещения изображения в виде встроенного изображения, или, может быть, другого метода, который поместит его в него? Я также называю этот метод доступным, если это вообще помогает.

Ответ 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