我有一个用于根据类型更改单元格字体颜色的宏。代码看起来像这样
Sub ModelColoring()
Dim cell As Range, constantCell As Range, formulaCells As Range
Dim cellFormula As String
With Selection
On Error Resume Next
Set constantCell = .SpecialCells(xlCellTypeConstants, xlNumbers)
Set formulaCells = .SpecialCells(xlCellTypeFormulas, 21)
On Error GoTo 0
End With
If Not constantCell Is Nothing Then
constantCell.Font.Color = vbBlue
End If
If Not formulaCells Is Nothing Then
For Each cell In formulaCells
cellFormula = cell.Formula
If cellFormula Like "*.xls*]*!*" Then
cell.Font.Color = RGB(0, 176, 80)
ElseIf cellFormula Like "*!*" _
And Not cellFormula Like "*\**" _
And Not cellFormula Like "*+*" _
And Not cellFormula Like "*-*" _
And Not cellFormula Like "*/*" _
And Not cellFormula Like "*^*" _
And Not cellFormula Like "*%*" _
And Not cellFormula Like "*>*" _
And Not cellFormula Like "*<*" _
And Not cellFormula Like "*=<*" _
And Not cellFormula Like "*=>*" _
And Not cellFormula Like "*<>*" _
And Not cellFormula Like "*&*" Then
cell.Font.Color = vbRed
Else
cell.Font.Color = vbBlack
End If
Next cell
End If
End Sub
我遇到了这条线的问题
And Not cellFormula Like "*\**"
基本上我希望所有具有常量的单元格都有一种字体颜色,那些执行计算的单元格具有另一种字体颜色,以及那些从另一个图纸中获取其值的单元格。但是,由于某些原因,上面提到的行似乎没有识别乘法符号*并且使用来自其他工作表的值的单元格并将它们相乘,就好像它们只是从另一个工作表中派生一样(即vbRed而不是黑色)。