VBA Excel Добавление изображений на лист - PullRequest
2 голосов
/ 27 апреля 2011

Я нашел немного кода, который помогает вставить изображение на лист, но пользователь должен выбрать, какое изображение вставить.Я надеялся, что вместо этого он выберет конкретную картинку (в частности, логотип компании) и вставит ее.Вот код:

PicLocation = Application.GetSaveAsFilename("C:\Work\test_Project\", "CA_Value_AVM, *.jpg", 1)
If PicLocation <> "" Then
    ActiveSheet.Pictures.Insert(PicLocation).Select
Else
    Exit Sub
End If

Этот код выполняется при нажатии кнопки.Пользователь щелкает по нему, а затем открывается путь «C: \ Work \ test_Project \», и ​​пользователь должен щелкнуть изображение.Мне нужно это изменить, чтобы пользователь ничего не нажимал.

Ответы [ 2 ]

2 голосов
/ 10 июня 2015

Я знаю, что об этом спрашивали 4 года назад, но я хотел бы продолжить и обновить ответ здесь, чтобы оп и будущие поисковики (такие как я) могли получить более полный ответ.

Ответ Йонски уместен и будет работать, но ваше изображение не будет работать, если электронная таблица перемещена. По существу, ActiveSheet.Pictures.Insert встраивает изображение, Это означает, что если исходное изображение или электронная таблица будут перемещены, ссылка будет разорвана и изображение не будет отображаться (не очень хорошо для электронных таблиц компании, о которых первоначально спрашивал OP).

Однако, если вы хотите, чтобы изображение работало при перемещении / отправке / и т. Д. Вы можете использовать:

ActiveSheet.Shapes.AddPicture("C:\Work\test_Project\myjpgfile.jpg", False, True, 1, 1, 1, 1)

См. в этом посте , чтобы немного больше объяснить позиционирование и прочее.

(Спасибо PaulStock за оригинальный пост)

1 голос
/ 27 апреля 2011

Должно работать как:

ActiveSheet.Pictures.Insert("C:\Work\test_Project\myjpgfile.jpg").Select

, так как это все, что возвращает функция в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...