条件格式VBA中括号内的数字

时间:2017-10-13 09:45:01

标签: excel vba excel-vba if-statement

下面显示了我在Excel中保存的数据集示例,并希望编写一个将Col1与Col2进行比较的if语句。

Col1 Col2
(2)  (6)
(10) (7)

如果Col1大于Col2,我想突出显示Col1红色,如果Col1小于Col2,我想突出显示绿色。

我已经在VBA中尝试了以下if语句。

For lngI = 1 To 2
If Worksheets("Front End").Cells(lngI + 11, 4).Value > Worksheets("Front End").Cells(lngI + 11, 6).Value Then
    Worksheets("Front End").Cells(lngI + 11, 4).Interior.ColorIndex = 3
    Worksheets("Front End").Cells(lngI + 11, 4).Font.Color = 2
ElseIf Worksheets("Front End").Cells(lngI + 11, 4).Value < Worksheets("Front End").Cells(lngI + 11, 6).Value Then
    Worksheets("Front End").Cells(lngI + 11, 4).Interior.ColorIndex = 50
    Worksheets("Front End").Cells(lngI + 11, 4).Font.Color = 2
End If
Next lngI

它不是很强大,因为它并不总是有效,因为涉及到括号。如您所见,VBA中需要代码。代码中显示的数字是一些示例,其中一些单元格在我当前的代码中,我不介意是否更改它们以帮助解释。

任何帮助都会很棒。感谢。

1 个答案:

答案 0 :(得分:2)

如果你稍微简化一下,可能会达到这样的目的:

enter image description here

使用以下内容:

Option Explicit

Public Sub TestMe()

    Dim lngI    As Long
    Dim lngA    As Long
    Dim lngB    As Long

    For lngI = 1 To 3
        With Worksheets(1)
            lngA = Replace(Replace(.Cells(lngI, 1), "(", ""), ")", "")
            lngB = Replace(Replace(.Cells(lngI, 2), "(", ""), ")", "")

            If lngA > lngB Then
                .Cells(lngI, 1).Interior.ColorIndex = 3
                .Cells(lngI, 1).Font.Color = 2
            ElseIf lngA < lngB Then
                .Cells(lngI, 1).Interior.ColorIndex = 50
                .Cells(lngI, 1).Font.Color = 2
            End If
        End With
    Next lngI

End Sub