用不同的颜色绘制多位数的数字



我有一个单元格("A1"(,它可以有一个数字(例如154639875(或一个字符串(例如溢出(,目标是用3种不同的颜色绘制它,每组3个藻类/字符。该代码适用于字符串,但是当我使用整数时,它只使用一种颜色。

为了尝试修复它,我将数字转换为字符串并将其粘贴到("A2"(中。

Sub MixColors()
If IsNumeric(Range("A1")) Then
Dim num As Long
Dim word As String
num = Range("A1").value
word = CStr(num)
Range("A2").value = word
Range("A2").Characters(1, 3).Font.Color = vbBlue
Range("A2").Characters(4, 3).Font.Color = vbRed
Range("A2").Characters(7, 3).Font.Color = vbGreen
'MsgBox "Integer"
Else
Range("A1").Characters(1, 3).Font.Color = vbRed
Range("A1").Characters(4, 3).Font.Color = vbBlue
Range("A1").Characters(7, 3).Font.Color = vbGreen
'MsgBox "Not Integer"
End If
End Sub

两个选项:

1(如果将单元格格式化为文本,它将与数字或文本正常工作。

2( 更改为:

word = "'" & CStr(num)

这会强制它到文本字段。

数字格式需要为文本"@"

Sub MixColors()
If IsNumeric(Range("A1")) Then
Range("A2").NumberFormat = "@"
Range("A2").Formula = CStr(Range("A1").Value)
Range("A2").Characters(Start:=1, Length:=3).Font.Color = vbBlue
Range("A2").Characters(Start:=4, Length:=3).Font.Color = vbRed
Range("A2").Characters(Start:=7, Length:=3).Font.Color = vbGreen
'MsgBox "Integer"
Else
Range("A1").Characters(1, 3).Font.Color = vbRed
Range("A1").Characters(4, 3).Font.Color = vbBlue
Range("A1").Characters(7, 3).Font.Color = vbGreen
'MsgBox "Not Integer"
End If
End Sub

最新更新