当单元格的名称与图片相同时,在图片上添加边框/阴影-Excel

时间:2018-12-11 12:14:30

标签: excel vba excel-vba conditional-formatting

我已经建立了英国的热点地图。当单元格与县名相同时,是否可以突出显示某个县?

热图由每个县的单个图片组成,这些图片已重叠。理想情况下,这将在您将数据放入单元格后立即生效。

我知道条件格式不太可能起作用,这可能需要VBA-另外,当我尝试应用轮廓时,它当前位于“图片”矩形周围,而不仅仅是图像的非透明部分。

如果您需要更多信息,请问我任何问题。

谢谢

1 个答案:

答案 0 :(得分:0)

使用透明度较低或为零的“发光”或“阴影”,而不是使用“线条”。例如,以下两个子将使Sheet1上的形状为“图片1”的形状以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

但是-您可能还想将Shape放在最前面,以便其他Picture不会遮盖轮廓。 (您应该可以使用“记录宏”来获取代码)

您可以通过以下方式触发更改:

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

(显然,一个For Each循环将取消所有形状的发光,然后根据名称发光为形状,例如“ Pic_Cornwall”,这比键入新的Subs和If链要有效得多。每个县)