【发布时间】:2019-09-17 02:49:26
【问题描述】:
几年前,我从 Paul Bica 的帖子中借用了下面的代码。 (Using Conditional Formatting with Icon Sets with six conditions)
Option Explicit
Public Sub testIcons()
Application.ScreenUpdating = True
setIcon Sheet1.UsedRange
Application.ScreenUpdating = True
End Sub
Public Sub setIcon(ByRef rng As Range)
Dim cel As Range, sh As Shape, adr As String
For Each sh In rng.Parent.Shapes
If InStrB(sh.Name, "$") > 0 Then sh.Delete
Next: DoEvents
For Each cel In rng
If Not IsError(cel.Value2) Then
If Val(cel.Value2) > 0 And Not IsDate(cel) Then
adr = cel.Address
Set sh = Sheet1.Shapes.AddShape(msoShapeOval, cel.Left + 5, cel.Top + 2, 10, 10)
sh.ShapeStyle = msoShapeStylePreset38: sh.Name = adr
sh.Fill.ForeColor.RGB = getCelColor(Val(cel.Value2))
sh.Fill.Solid
End If
End If
Next
End Sub
Public Function getCelColor(ByRef celVal As Long) As Long
Select Case True
Case celVal = 1: getCelColor = RGB(211, 211, 211): Exit Function
Case celVal = 2: getCelColor = RGB(0, 0, 0): Exit Function
Case celVal = 3: getCelColor = RGB(255, 0, 0): Exit Function
Case celVal = 4: getCelColor = RGB(255, 153, 204): Exit Function
Case celVal = 5: getCelColor = RGB(255, 255, 51): Exit Function
Case celVal = 6: getCelColor = RGB(0, 204, 0): Exit Function
End Select
End Function
我想让它只显示图标而不显示单元格的值。
【问题讨论】:
-
你能把字体颜色设置为白色吗?
-
在您拥有
Not IsError(cel.Value2)的代码上,它正在寻找单元格中的值。如果您对没有值的图标感兴趣(这是我的理解),只需放置IsError(cel.Value2),删除 Not -
感谢您的回复。 @David Garcia Bodega ..您的假设是正确的。我尝试了您的建议,但不幸的是它删除了图标并留下了值。