2

Я хочу вставить изображение из Интернета в таблицу Excel.

Я хочу встроить картинку по URL, так же, как картинки встроены в html-страницу. Я не хочу загружать картинку и вставлять ее как обычную картинку.

И я хочу, чтобы изображение отображалось (если я в сети, конечно), а не только URL.

Можно ли это сделать? Если так, как?

Желательно в Excel, но OO calc будет хорошо

5 ответов5

2

В Excel выберите Вставить > Изображение > Из файла ... и введите URL-адрес изображения, которое вы хотите вставить. Я не знаю, обновляется ли картинка сама, потому что я никогда не пробовал.

0

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

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

0

Выполните следующие шаги,

  1. Нажмите «Изображение» на вкладке «Вставка».

  2. Вставьте URL к изображению (jpg | png и т.д.) ИЛИ выберите путь к изображению на вашем настольном компьютере

  3. Нажмите стрелку вниз на кнопке «Вставка» и выберите « Вставить и связать».

  4. Теперь каждый раз, когда вы закрываете и заново открываете свой файл Excel, вы увидите обновленное изображение (если оно изменилось)

0

Если URL находится в C1, изображение будет помещено в B1 (проверено в Excel 2003 и 2013 мной):

Sub Test()
    Dim Pic As Picture
    Application.ScreenUpdating = False
    With ActiveSheet.Range("C1")
        Set Pic = .Parent.Pictures.Insert(.Value)
        With .Offset(, -1)
            Pic.Top = .Top
            Pic.Left = .Left
            Pic.Height = .Height
            Pic.Width = .Width
        End With
    End With
    Application.ScreenUpdating = True
End Sub

источник

0

Это моя модифицированная версия ответа, которую поделился с tomelin5. Он работает в Excel 2016 и, вероятно, (намного) в более ранних версиях.

В моем случае я создал приложение Microsoft PowerApps для сбора и хранения подписей с помощью ручки ввода.

В стороне: Если вы читаете это, потому что пытаетесь создать PowerApp: волшебным соусом для сохранения содержимого ваших элементов управления в электронную таблицу является функция Patch .

Это работает так, что перьевой элемент управления сохраняет изображения в виде файлов PNG в каталоге и сохраняет относительные адреса к файлам PNG в виде URL-адресов в ячейках электронной таблицы: URL, например .\MyAppName_images\x829ca33re2d6114588e59ca45829d21.png

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

Мое решение сохраняет URL-адреса в столбце "A" (1) и помещает сами изображения в столбец "I" (9). Он также регулирует высоту строк в соответствии с шириной столбца 9-го столбца, хотя вы, вероятно, захотите изменить / устранить это поведение.

Все URL-адреса обрабатываются, начиная с A2, и простираются до последней заполненной ячейки в столбце A. Обратите внимание, что мое решение не обрабатывает никаких исключений, и вам понадобится это в случае, если изображения были недоступны.

Sub Button1_Click()
    ' https://msdn.microsoft.com/en-us/library/office/aa221353(v=office.11).aspx
    ' http://www.excelhowto.com/macros/loop-range-cells/
    ' https://www.excelcampus.com/vba/find-last-row-column-cell/
    ' https://superuser.com/questions/52760/embed-pictures-from-web-by-url-in-excel-spreadsheet-or-oo-calc#

    Dim Pic As Picture
    Dim SrcRange As Range
    Dim LastRowA As Long

    LastRowA = Cells.Find(What:="*", _
                    After:=Range("A1"), _
                    LookAt:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Row

    Set SrcRange = ActiveSheet.Range(Cells(2, 1), Cells(LastRowA, 1))

    SrcRange.Rows().RowHeight = ActiveSheet.Columns(9).Width

    For Each Cell In SrcRange.Cells
        With Cell
            Set Pic = .Parent.Pictures.Insert(.Value)
            With .Offset(, 8)
                Pic.Top = .Top
                Pic.Left = .Left
                Pic.Height = .Height
                Pic.Width = .Width
                Pic.Border.Color = vbRed
            End With
        End With
    Next
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .