Excel 通过 VBA 代码输入值时条件格式不正确

Excel Conditional Formatting is incorrect when value is entered by VBA Code

我对这个问题满脑子都是问号,希望你能帮我解决这个问题。

在 2 列中,我得到了一些格式化为文本的数字,例如“1.234”。从 VBA 代码单击按钮后输入此值。在此之后,如果值彼此相等,第一个单元格也有一些条件格式以显示红色或绿色 BG。

条件格式如下:

With Sheet2.Range(Sheet2.Cells(5, find_column.Column), Sheet2.Cells(intTotalRows, find_column.Column))
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=RC" & find_column_compare.Column
    .FormatConditions(1).Font.Color = -16752384
    .FormatConditions(1).Interior.Color = 13561798
    .FormatConditions(1).StopIfTrue = True
End With
With Sheet2.Range(Sheet2.Cells(5, find_column.Column), Sheet2.Cells(intTotalRows, find_column.Column))
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, Formula1:="=RC" & find_column_compare.Column
    .FormatConditions(2).Font.Color = -16383844
    .FormatConditions(2).Interior.Color = 13551615
    .FormatConditions(2).StopIfTrue = True
End With

所以这按预期工作,如果它是相同的数字,例如1.234 这个单元格是绿色的,如果不是红色的。

如果我将单元格值手动更改为任何其他值,BG 颜色会按预期在红色和绿色之间切换。但这一点不是手动输入结束号码,所以我得到了这行代码来计算:

Cells(active_cell_row, find_column.Column) = Round(Cells(active_cell_row, Col - 1) / Cells(active_cell_row, Col), 3)

这会在单元格中输入正确的数字,但条件格式始终为红色,即使值相同也是如此。如果我手动覆盖相同的值,条件格式将切换为绿色...

好的,没关系,我自己解决了这个问题..

如果有人遇到这个问题:

首先将值声明为字符串...

Dim txt As String: txt = Round(Cells(active_cell_row, Col - 1) / Cells(active_cell_row, Col), 3)
Cells(active_cell_row, find_column.Column) = txt