VBA查找两个数字之间有小数的数字

时间:2019-02-25 06:47:10

标签: excel vba

在屏幕截图中,您可以看到我桌子的某些部分。

enter image description here

在A:DI列中放入一些Value,在第1行中搜索B列中的值,并在第2行中搜索C:D的值。此后,它将在已建立范围内的单元格变为红色。

示例“ Test”和“ Test2”可以正常工作。但是3.和4.示例不适用于我的代码,因为给定的数字不在Range(“ E2:AM2”)中。

我现在的问题是,如果有5、15、25、152、87等数字,我该如何找到起始温度和终止温度?

到目前为止,这是我的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim a As Long
    Dim turnCol As Range

    Set ws = ThisWorkbook.Worksheets(1)
    With ws
        If Not Application.Intersect(Range("D:D"), Range(Target.Address)) Is Nothing Then
            a = ActiveCell.Row

            Turns = "Turn " & .Cells(a, 2).Value
            StartTemp = Int(CDec(.Cells(a, 3).Value))
            EndTemp = Int(CDec(.Cells(a, 4).Value))

            Set turnCol = .Range("1:1").Find(What:=Turns)
            Set startCol = .Range(.Cells(2, turnCol.Column), .Cells(2, turnCol.Column + 35)).Find(What:=StartTemp)
            Set endCol = .Range(.Cells(2, turnCol.Column), .Cells(2, turnCol.Column + 35)).Find(What:=EndTemp)

            .Range(.Cells(a, startCol.Column), .Cells(a, endCol.Column)).Interior.Color = RGB(255, 0, 0)
        End If
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

当前,Excel工作表之间有所不同,启用宏和禁用宏。为了使某些内容在每个Excel文件中都能正常运行,我建议您避免使用宏,除非确实需要。

在这种情况下,确实不需要宏:您可以使用条件格式解决问题:

  • 条件格式
    • 突出显示规则
    • 之间:
      • = $ C $ 2
      • = $ D $ 2
      • 自定义格式(用红色填充)

祝你好运