2014-09-04 44 views
0

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

我想通过每个%错误单元格的值进行迭代,但我也需要阅读下拉值以及..这似乎并没有与代码工作,我有

以下是我有:

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 

任何帮助表示赞赏...

+0

下拉框的值是从哪里考虑的? 是Perc_Error2的相邻列吗? 什么是EGM_Target_Reading和EGM_Reading单元格? 这段代码的结果是什么,它为什么不起作用? – cronos2546 2014-09-04 22:11:38

+0

下拉=“Annual_Verif”。所有锁定= false的范围都是相邻的列。我把代码放在了错误的地方,我将它移到了特定的工作表变更部分,但是当值大于0.1时,它不会解锁那些单元格。我上面编辑了我的代码... – 2014-09-05 16:18:07

回答

0

的问题来自于

的查询股价如果任何值都小于0.1或大于-0.1

如果你的意思是你的条件状态,您

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

应该是

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

如果您的意思是“大于”意味着一个la rger absoloute number,那么你的if语句应该是

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

我在我的问题中写错了,并且编辑了它..限制编码正确我只是在我的问题中误写了它 – 2014-09-05 18:43:22

相关问题