Как сделать поиск картинок с помощью формулы в Excel - PullRequest
0 голосов
/ 25 января 2019

Мне интересно, есть ли решение для загрузки изображения с помощью формулы (не VBA) из списка изображений в Excel

Например,

=IF(TODAY()-B9<8,G6,"puste")

Допустим, у меня есть изображение в ячейке G6, и я хочу, чтобы формула возвращалась, если условие истинно.

enter image description here

1 Ответ

0 голосов
/ 25 января 2019

Вкратце, решение можно суммировать в 2 этапа:

  1. Создайте связанную ячейку изображения, используя метод Excel PasteSpecial.
  2. Измените формулу связанной ячейки на формулу «Именованный диапазон», чтобы сделать ее динамичной.
  3. (Необязательно) - если имеется много ячеек, и одна из них считает утомительным вручную изменять адрес каждого связанного изображения, то используйте макрос VBA ниже, чтобы назначить формулу именованного диапазона всем ячейкам.

Sub Set_Formula_Linked_Cell()

Dim rngDest As Range
Dim objPic As Object

    For Each rngDest In Range("F5:O18").Cells
        rngDest.Select
        Set objPic = ActiveSheet.Pictures.Paste(Link:=True)
        objPic.Formula = "=Country_Flag"
        Set objPic = Nothing
    Next
End Sub

Подробнее, давайте рассмотрим похожую ситуацию:

  1. Предположим, у нас есть список стран и их соседних флагов.

Country Flag List Table

  1. Следующим шагом является копирование ячейки (любая ячейка, содержащая флаг, не копировать изображение, но ячейку / диапазон) и вставка в качестве связанной картинки в ячейку назначения.

Create a linked Cell to the original image

  1. Теперь, внимательное наблюдение в адресной строке показывает, что текущая ячейка, которая отображает флаг, связана с другой ячейкой. Нам нужно изменить эту формулу. К сожалению, мы не можем изменить формулу здесь. Либо это может быть прямая ссылка или именованный диапазон, но не формула.

Change the formula

  1. Мы создадим «Именованный диапазон» с именем «Country_Flag» и формулой:
* * = Тысячу сорок четыре ИНДЕКС (Лист1 $ B $ 2:! $ B $ 6, MATCH (Лист1 $ F $ 3, Лист1 $ A $ 2: $ A $ 6,0)) * * 1045

Create Name Range

  1. На последнем шаге мы назначим этот именованный диапазон связанной ячейке.

Assign Named Range to Linked Cell

...