Добавить рамку / затенение к изображению, когда ячейка имеет то же имя, что и изображение - Excel - PullRequest
0 голосов
/ 11 декабря 2018

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

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

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

Пожалуйста, задавайте мне любые вопросы, если вам нужна дополнительная информация.

Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Вместо использования Line используйте Glow или Shadow с прозрачностью с низким или нулевым значением.Например, следующие 2 саба сделают Shape с именем "Picture 1" на Sheet1, запустив или остановив светящийся с прозрачностью 0, что, мы надеемся, даст подходящий контур.

Sub MakeShapeGlow()
    With Sheet1.Shapes("Picture 1").Glow
        .Color.ObjectThemeColor = msoThemeColorAccent5
        .Color.TintAndShade = 0
        .Color.Brightness = -0.25
        .Transparency = 0
        .Radius = 6
    End With
End Sub

Sub StopShapeGlow()
    Sheet1.Shapes("Picture 1").Glow.Radius = 0
End Sub

Однако - вы, вероятно, также хотите перенести форму на передний план, чтобы другие рисунки не закрывали контур.(Вы должны иметь возможность использовать «Record Macro», чтобы получить код для этого)

Вы можете инициировать изменение следующим образом:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Cornwall" Then
        MakeShapeGlow
    Else
        StopShapeGlow
    End If
End Sub

(Очевидно, цикл For Eachкоторый раскрашивает все фигуры, а затем светится, поскольку фигуры, основанные на имени, такие как «Pic_Cornwall», были бы гораздо более эффективными, чем ввод новых подпрограмм и цепей If для каждого округа)

...