迭代单元格值和条件格式

时间:2014-09-04 18:35:41

标签: vba loops excel-vba conditional-statements excel

我在列中有10个单元格,它们是%错误值。如果任何值小于-0.1或大于0.1,并且如果某个下拉框被选为"否",那么我需要一个相邻的列被解锁并且能够被编辑。我所做的是命名整个单元格列(Perc_Error1),并使用它来引用...我认为这就是问题所在,excel不是读取每个单元格值而是整个名称值而它可能不知道它是什么..

我想迭代每个%error单元格值,但我也需要读取下拉值...这似乎并没有使用我的代码

这就是我所拥有的:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 Dim i As Variant
ActiveSheet.Unprotect Password:=TRPassword
    If Range("Annual_Verif").value = "Yes" Then
        Range("Ref_Test_Point").Locked = False
        Range("EGM_Target_Reading").Locked = True
        Range("EGM_Reading").Locked = False
        Range("Perc_Error2").Locked = True
        End If


    If (Range("Annual_Verif").value = "No") Then Resume Next
        For Each i In Range("Perc_Error1").Cells
            If (Abs(i.value) > (0.1)) Then
                Range("Ref_Test_Point").Locked = False
                Range("EGM_Target_Reading").Locked = True
                Range("EGM_Reading").Locked = False
                Range("Perc_Error2").Locked = True
            End If
        Next
        ActiveSheet.Protect Password:=TRPassword
End Sub

感谢任何帮助...

1 个答案:

答案 0 :(得分:0)

问题来自于

的混合
  

如果任何值小于0.1或大于-0.1

如果你的意思是你的状况,你的

If (Abs(i.value) > (0.1)) Then

应该是

If (Abs(i.value) < (0.1)) Then

如果你的意思是“大于”意味着更大的绝对数字,那么你的if语句应该是

If i.value < 0.1 And i.value < -.1  Then