Excel — Как изменить цвет фигуры на основе цвета другой ячейки

#excel #vba #colors #shapes #excel-2016

#excel #vba #Цвет #фигуры #excel-2016

Вопрос:

Я пытаюсь изменить цвет нескольких фигур на основе таблицы на другой вкладке. Таблица содержит часть, квадрант, название фигуры и значение (ячейка с определенным цветом.) Я пытаюсь привязать фигуру к цвету, используя имя фигуры и диапазон расположения ячейки цвета, но я получаю не определенную подфункцию. Цвета для значений в таблице основаны на условном формате.

 Sub Update()

Dim CellColor As Long
Dim ShapeColor As Variant

    CellColor = Worksheets("Sheet1").Range("D2").DisplayFormat.Interior.Color
    ShapeColor = Worksheets("Sheet1").Range("C2").Value
    Worksheets("main").Shapes(ShapeColor).Fill.ForeColor.RGB = CellColor

    Worksheets("main").Select
End Sub
  

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

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

Комментарии:

1. Set здесь не следует использовать. Worksheet("main") отсутствует s Worksheets .

2. Если форматирование условное, то вам нужно работать с Worksheets("Sheet1").Range("D2").DisplayFormat.Interior.Color

Ответ №1:

Переношу мои комментарии к ответу:

  • Set здесь не следует использовать. Worksheet("main") отсутствует s — Worksheets .
  • Если это условное форматирование, то вам нужно поработать с Worksheets("Sheet1").Range("D2").DisplayFormat.Interior.Color .

Комментарии:

1. Я обновил работающий код, как бы я мог выполнить этот код для каждой строки в таблице? У меня есть 100 строк, для которых требуется выполнить этот код.

2. @bullfrog97 — вам понадобится цикл. For Each cell in Range("C2:C100") или что-то еще. Затем cell.Offset(,1) будет ссылаться на ячейку в столбце D. Попробуйте и не стесняйтесь публиковать новый вопрос, если у вас не получается заставить его работать.