Excel 跨工作簿的条件格式问题

Excel 跨工作簿的条件格式问题,excel,Excel,我有一个非常简单的表,我对它应用了条件格式规则。该规则规定,对于特定颜色,高亮显示小于一定数量的值。但是,我发现当我将工作表复制到另一个工作簿时,突出显示的单元格的颜色会发生显著变化。在这个例子中,它从绿色变为橙色。这是一个普遍的问题吗?是否有人知道如何解决此问题?我无法复制此问题 请将下面的代码添加到问题工作簿中 将光标放在源工作簿中显示为绿色的单元格上,然后运行宏TestCF()。然后将光标放在目标工作簿中的同一单元格上,然后再次运行宏TestCF() 宏显示条件格式设置的字体颜色。两个工作

我有一个非常简单的表,我对它应用了条件格式规则。该规则规定,对于特定颜色,高亮显示小于一定数量的值。但是,我发现当我将工作表复制到另一个工作簿时,突出显示的单元格的颜色会发生显著变化。在这个例子中,它从绿色变为橙色。这是一个普遍的问题吗?是否有人知道如何解决此问题?

我无法复制此问题

请将下面的代码添加到问题工作簿中

将光标放在源工作簿中显示为绿色的单元格上,然后运行宏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

谢谢,我很快会花一些时间来测试。