Excel конвертирует URL в изображения (1004)

У меня есть документ excel, связанный с базой данных SQL, который содержит несколько столбцов URL-адресов изображений.

Один из этих URL-адресов выглядит так: https://imissit.blob.core.windows.net/iris/596480cf967e0c990c37fba3725ada0c/814040e2-0ccb-4b05-bdb3-d9dc9cc798d9/texture.png https://imissit.blob.core.windows.net/iris/596480cf967e0c990c37fba3725ada0c/814040e2-0ccb-4b05-bdb3-d9dc9cc798d9/texture.png

Я нашел различные подходы и методы по преобразованию этих URL-адресов в изображения (например, Excel VBA Вставка изображений из имени изображения в столбце и https://superuser.com/questions/940861/how-can-i-display-a-url- as-an-image-in-a-excel-cell ) в документе excel с использованием макросов. Я пробовал эти подходы, но ни один из них не работает для моего типа URL. Я пробовал другие URL-адреса (случайные изображения в Интернете, http и https и для тех изображений, которые он РАБОТАЕТ).

Это один из фрагментов, которые я пробовал, который работает для других изображений:

Sub InstallPictures() Dim i As Long, v As String For i = 2 To 2 v = Cells(i, "O").Value If v = "" Then Exit Sub With ActiveSheet.Pictures .Insert (v) End With Next i End Sub 

Во всяком случае, когда вы пытаетесь с моим URL-адресом, я получаю ошибку 1004 времени выполнения: метод Insert объекта изображения не может быть выполнен (переведен). Различные подходы приводят к немного отличающимся ошибкам во время выполнения (хотя 1004 согласован).

Вот некоторые URL-адреса изображений, которые я пробовал:

https://docs.oracle.com/cd/E21454_01/html/821-2584/figures/HTTPS_Collab_Sample.png

http://www.w3schools.com/css/paris.jpg

https://scontent.ftxl1-1.fna.fbcdn.net/v/t1.0-9/13043727_278733959131361_2241170037980408109_n.jpg?oh=bec505696c5f66cde0cc3b574a70547c&oe=58CC35C5

Что отличается от моего URL-адреса для других и почему эти методы не работают? Каков правильный подход?

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

Я вручную вводим URL-адрес сегодня и загружаю файл, без проблем.

Я проверяю код ответа, и он правильно возвращает 200 (успех).

введите описание изображения здесь

Лучшее, что вы можете сделать в этот момент, – просто уловить ошибку и пометить ее для последующего просмотра.

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

введите описание изображения здесь

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

 Sub InstallPictures() Dim i As Long Dim v As String Dim cl As Range Dim pic As Shape Dim errors As New Collection i = 2 Set cl = Cells(i, 15) Do While Trim(cl.Value) <> vbNullString v = Trim(cl.Value) cl.ClearComments With ActiveSheet.Pictures On Error GoTo ErrHandler Set p = .Insert(Trim(v)) On Error GoTo 0 ' I added this code to resize & arrange the pictures ' you can remove it if you don't need it p.TopLeftCell = cl.Offset(0, -1) p.Top = cl.Offset(0, -1).Top p.Left = cl.Offset(0, -1).Left p.Height = Cells(i, 15).Height p.Width = Cells(1, 15).Width ''''''''''''''''''''''''''''' End With NextCell: i = i + 1 Set cl = Cells(i, 15) Loop If errors.Count > 0 Then MsgBox "There were errors, please review the comments as some files may need to be manually downloaded" End If Exit Sub ErrHandler: Call ErrorNote(v, cl, errors) Resume NextCell End Sub Private Sub ErrorNote(url$, cl As Range, ByRef errs As Collection) ' Adds an item to the errs collection and flags the offending ' cell with a Comment indicating the error occurred. On Error Resume Next errs.Add (url) With cl .ClearComments .AddComment ("Error with URL: " & vbCrLf & url) End With End Sub 
Interesting Posts

Как вы комбинируете переменные для формирования функции в python?

Python os.isfile не поддерживает файлы excel

Удалить столбец данных из MacVim

Нестандартное извлечение данных Excel

Формирование отчета Excel VBA

Регулярное выражение – разделительные числа

Excel читает весь столбец – извлекает результаты в другом столбце

Сгенерировать все перестановки нескольких списков в Excel

Вызов другого объектаStream.Write текстовый макрос внутри моего макроса не работает

Преобразуйте ячейку в формулу с заменой

Почему мой код перестает работать? VBA Инициируйте один файл, который закрывает другой, прежде чем продолжить.

Как скопировать условное форматирование без копирования правил из ячейки с условным форматированием?

Экспорт диаграммы из Excel в Powerpoint с использованием VBA

Чтобы щелкнуть кнопку в UserForm в другой книге

Можете ли вы настроить условное форматирование на основе цветов других ячеек? (Google Таблицы)

Давайте будем гением компьютера.