首页 > 解决方案 > 如何根据单元格值锁定(只读)特定范围?

问题描述

我正在开发一个计划监控工具。我需要根据单元格值锁定一系列单元格。

我想当“Q”列中的值为“已确认”时,从 M 列到 Q 列的同一行上的单元格被锁定。
在此处输入图像描述

Sub planning_blocker()

    Dim last_row As Integer

    ' Compute the last row
    last_row = Worksheets("Planning").Cells(Rows.Count, 1).End(xlUp).Row
    Debug.Print last_row

    For i = 3 To last_row

        If Worksheets("Planning").Cells(i, 17).Value = "" Then
            Sheets("Planning").Range("M" & i & ":" & "P" & i).Locked = False
        
        Else
            Sheets("Planning").Range("M" & i & ":" & "P" & i).Locked = True
    
        End If
    
    Next i

    Sheets("Planning").Protect Password:="User"

End Sub

这部分是因为:

标签: excelvbacell

解决方案


我测试了你的代码,它适用于我(Excel2016)。如果当前行的第 17 列 (col Q) 不为空,则范围 (M:P) 被锁定。不要没有什么可能是你的问题......


推荐阅读