2013-12-06 4 views
3

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

Я запускаю законную копию Excel 2013 в Windows 7. Я записываю макросы, где я вставляю картинку, и в диалоговом окне открытого файла я вставляю этот URL: http://ecx.images-amazon.com/images/I/41u%2BilIi00L._SL160_.jpg (просто изображение продукта на Amazon). Это работает так, как ожидалось.

Результирующие макросы выглядит следующим образом:

Sub insertImage() 
' 
' percent Macro 
' 

' 
    ActiveSheet.Pictures.Insert(_ 
     "http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg").Select 
End Sub 

Однако, когда я пытаюсь запустить это, Insert разрывы строк со следующей ошибкой:

Run-time error '1004': 

Unable to get the Insert property of the Picture class 

Я пытаюсь вставить номер изображений в документ excel, и для этого я использую метод ActiveSheet.Pictures.Insert. Я столкнулся с этой проблемой, поэтому я воссоздал его таким образом, другие могли бы повторить, чтобы облегчить получение ответа ...

Интересной вещь, чтобы отметить:

http://ecx.images-amazon.com/images/I/41u%2BilIi00L._SL160_.jpg 'This is what I pasted 
http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg 'This is what the recorded macros recorded 

Похоже, Excel автоматически решен %2B - +. Я попытался сделать это, но безуспешно.

Еще одна интересная вещь: иногда это работает, а иногда и нет. Этот URL-адрес - это случай, когда он не работает. Вот где он: http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg

Почему Excel сгенерировал макросы, которые он не может запустить? Что еще более важно, как я могу избежать этой ошибки и продолжить работу ?? Благодаря!

ответ

1

Попробуйте обходной путь:

Sub RetrieveImage() 
Dim wsht As Worksheet: Set wsht = ThisWorkbook.ActiveSheet 
wsht.Shapes.AddPicture "http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg", _ 
        msoFalse, msoTrue, 0, 0, 100, 100 
End Sub 

Все поля обязательны для заполнения, который является своего рода облом, так как вы не можете получить по умолчанию размер. Расположение смещений и размеров в пикселях/точках. Кроме того, % превращается в +, это нормально, так как % заставит его не распознаваться (не знаю почему).

Результат:

enter image description here

Дайте нам знать, если это помогает.

+1

Любопытный ... Я скопировал и вставил ваш код точно, и он дал мне ошибку во время выполнения: «Указанный файл не найден». в строке 'AddPicture'. – kentcdodds

+0

Вы используете 'http: // ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg'? Не используйте его, используйте оригинал, записанный из вашего макроса. – Manhattan

+0

Нет, я копирую/вставляю то, что у вас точно ... Странно ... – kentcdodds

2

У меня такая же проблема. После некоторого рытья я узнал, что Excel выполняет запрос HTTP HEAD перед тем, как получить изображение. Если этот запрос HEAD не увенчался успехом, Excel вернет точные сообщения об ошибках, упомянутые в этом обсуждении.

Ваш тест можно легко проверить, используя Fiddler.

Смежные вопросы