Excel 根据A列中的值锁定或解锁B列和C列中的单元格

Excel 根据A列中的值锁定或解锁B列和C列中的单元格,excel,Excel,我试图写一个vba代码,但完全迷路了 基本上,这意味着: **Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect "" If Range("A11").Value = "NF" Then Range("B11 and C11").Locked = false ElseIf Range("A11").Value = (anything else other than NF) Then Rang

我试图写一个vba代码,但完全迷路了

基本上,这意味着:

**Private Sub Worksheet_Change(ByVal Target As Range) 
ActiveSheet.Unprotect "" 
If Range("A11").Value = "NF" Then 
Range("B11 and C11").Locked = false 
ElseIf Range("A11").Value = (anything else other than NF) Then 
Range("B11 and C11").Locked = true 
End If 'Activesheet.protect "" 
End sub**
我放了A11,但实际上这必须适用于A11到A30的每一行

A列是员工手动填写项目编号的地方,在B和C中,我有一个vlookup搜索项目编号,并在B中返回项目描述,在C中返回项目任务。 但是如果员工没有项目编号,他必须输入NF,这意味着他可以输入B和C来解释他在B中做了什么,以及他在C中做了什么

因此,B和C始终处于锁定状态,但如果他将NF放入井中,B和C必须解锁,以便他可以输入这两列。他有可能进入18个项目,从第11行到第30行不等

代码必须能够从第11行到第30行执行此操作

在网上搜索了两天之后,这是我想出的最好的代码,我发现所有的代码都是这样的,如果你把这个放进去做这个,如果你把这个放进去做那个。但在我的情况下,如果你把这个放进去,做这个,如果你把其他任何东西放进去,做这个。就是绕不过去


请找个人帮忙

给你。将此代码粘贴到相关工作表中。确保解锁工作表的列A,以允许用户在工作表受到保护后键入值

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim MyRange As Range
            With Me
                Set MyRange = .Range("A11:A20") ' Change the range according to your requirement
                .Unprotect ""
                If Not Intersect(Target, MyRange) Is Nothing Then
                    If Target.Value = "NF" Then
                        Target.Offset(0, 1).Locked = False
                        Target.Offset(0, 2).Locked = False
                    Else
                        Target.Offset(0, 1).Locked = True
    Target.Offset(0, 1).Value = Application.Worksheetfunction.Vlookup(Target.value,Thisworkbook.worksheets("Project").Range("A:E"),4,0)
                        Target.Offset(0, 2).Locked = True
Target.Offset(0, 2).Value = Application.Worksheetfunction.Vlookup(Target.value,Thisworkbook.worksheets("Project").Range("A:E"),5,0)
                    End If
                End If
                .Protect ""
            End With
        End Sub

希望这能帮上忙:)

跳快乐舞:)非常感谢,很高兴知道!,请投票并选择最终答案:)不过我还有一个问题。是否可以这样说:如果单元格A11=NF解锁B11和C11,如果单元格A11=vlookup在从A1到A5000的表格“项目”中,则锁定单元格B11和C11是。但是你需要关于你在工作表项目中拥有的立柱的信息。基本上,您希望在B栏和C栏中看到的内容。在“项目”表中,我在A栏有项目编号,在B栏有项目日期,在C栏有公司名称,在D栏有项目说明,在E栏有项目要求的任务。所以我想在ColumB中看到项目描述,在C中看到所请求的任务