2017-06-01 316 views
0

有人可以帮我解决问题吗?我一直在阅读有关VBA脚本的知识,它允许基于另一个单元格的值解锁单元格,但我似乎无法使其与我的电子表格或甚至空白电子表格一起工作。基于另一个单元格的值锁定和解锁单元格(excel 2013)

这里是我想怎样做:

我有单元格A1:A5具有以下(列表)的确认值“是”,“否”和“选择”。

如果A2 =“是” - 我想看到单元格B2 =解锁;

如果A2 =“否” - 我想看到单元格B2 =解锁;和

如果A2 =“选择” - 我想看到单元格B2 =锁定。

任何输入,非常感谢。

下面是代码:

If LCase(Range("A2:A10")) = "Yes" Then 
    Range("B2:B10").Locked = False 
ElseIf LCase(Range("A2:A10")) = "No" Then 
    Range("B2:B10").Locked = False 
ElseIf LCase(Range("A1:A10")) = "Select" Then 
    Range("B2:B10").Locked = True 
End If 
End Sub 

诗篇。我在Stackoverflow上阅读了一些评论,但是这些信息似乎并不奏效。

https://www.teachexcel.com/excel-help/excel-how-to.php?i=302178

谢谢大家提前。

+0

请记住,锁定的单元格只在整个工作表受到保护时锁定。 –

+0

更好地在你的问题中包含你的实际代码,并描述它的功能*而不是工作。 –

+0

我很抱歉,我刚刚更新了问题并添加了VBA代码。 – redfoxbat

回答

2

循环遍历A列中的单元格,并通过偏移量对列B中的单元格执行操作。

dim rng as range 
with worksheets("sheet1") 
    for each rng in .range("a2:a10") 
     select case lcase(rng.value2) 
      case "yes", "no" 
       rng.offset(0, 1).locked = false 
      case "select" 
       rng.offset(0, 1).locked = true 
      case else 
       'do nothing if not yes, no or select 
     end select 
    next rng 
end with