我有一个非常简单的表,我应用了条件格式规则。该规则规定突出显示小于特定量的特定颜色的值。但是,我发现当我将工作表复制到另一个工作簿时,突出显示的单元格的颜色会发生显着变化。在这种情况下,它从绿色阴影变为橙色阴影。这是个常见的问题吗?有没有人碰巧知道如何解决这个问题?
答案 0 :(得分:1)
我无法复制此问题。
请将以下代码添加到问题工作簿中。
将光标放在源工作簿中显示为绿色阴影的单元格上,然后运行宏 TestCF()。然后将光标放在目标工作簿中的同一单元格上,再次运行宏 TestCF()。
宏显示条件格式设置的字体颜色。我得到两个工作簿的相同输出。也许你会得到不同的输出。
Option Explicit
Sub TestCF()
Dim InxCF As Long
With ActiveCell
Debug.Print "Workbook " & ActiveWorkbook.Name & " Worksheet " & _
ActiveSheet.Name & " Cell " & ColNumToCode(ActiveCell.Column) & ActiveCell.Row
For InxCF = 1 To .FormatConditions.Count
Debug.Print " Format " & InxCF
With .FormatConditions(InxCF)
Debug.Print " Font colour: " & ColourToRGB(.Font.Color)
End With
Next
End With
End Sub
Function ColourToRGB(ByVal Colour As Long) As String
Dim Red As Long
Dim Blue As Long
Dim Green As Long
Dim BlueGreen As Long
Red = Colour Mod 256
BlueGreen = Colour \ 256
Green = BlueGreen Mod 256
Blue = BlueGreen \ 256
ColourToRGB = "RGB(" & Red & ", " & Green & ", " & Blue & ")"
End Function
Function ColNumToCode(ByVal ColNum As Long) As String
Dim Code As String
Dim PartNum As Long
' Last updated 3 Feb 12. Adapted to handle three character codes.
If ColNum = 0 Then
ColNumToCode = "0"
Else
Code = ""
Do While ColNum > 0
PartNum = (ColNum - 1) Mod 26
Code = Chr(65 + PartNum) & Code
ColNum = (ColNum - PartNum - 1) \ 26
Loop
End If
ColNumToCode = Code
End Function