You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据Excel单元格G4的值锁定第9行指定单元格并赋值?

解决Excel下拉选择控制单元格锁定与值的问题

实现步骤

  1. 初始化单元格锁定状态

    • 全选工作表(按Ctrl+A),右键选择「设置单元格格式」→切换到「保护」选项卡,取消勾选「锁定」,点击确定。这样默认所有单元格都处于可编辑状态,后续仅锁定需要限制的单元格。
  2. 添加VBA事件代码

    • 右键目标工作表标签(如Sheet1),选择「查看代码」,粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 仅响应G4单元格的内容变化
    If Not Intersect(Target, Me.Range("G4")) Is Nothing Then
        ' 取消工作表保护,若有密码,将""替换为你的密码,例:"123456"
        Me.Unprotect Password:=""
        
        Select Case Me.Range("G4").Value
            Case 1
                ' 仅允许编辑G9,H9/I9/J9锁定并设为0
                Me.Range("G9").Locked = False
                With Me.Range("H9:J9")
                    .Locked = True
                    .Value = 0
                End With
            Case 2
                ' 允许编辑G9/H9,锁定I9/J9
                Me.Range("G9:H9").Locked = False
                Me.Range("I9:J9").Locked = True
            Case 4
                ' 允许编辑G9到J9所有单元格
                Me.Range("G9:J9").Locked = False
            Case Else
                ' 未选择指定值时,仅允许编辑G9
                Me.Range("G9").Locked = False
                Me.Range("H9:J9").Locked = True
        End Select
        
        ' 重新保护工作表,UserInterfaceOnly参数让VBA可直接修改锁定状态
        Me.Protect Password:="", UserInterfaceOnly:=True
    End If
End Sub
  1. 关键注意事项
    • 若G4的下拉选项是文本类型(而非数字),需将代码中Case 1/Case 2/Case 4改为Case "1"/Case "2"/Case "4"
    • 保存文件时需选择.xlsm格式(启用宏的工作簿),否则代码无法生效
    • 若工作表设置了保护密码,需同步修改代码中两处Password:=""的内容

内容的提问来源于stack exchange,提问作者Sibbie88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:40:25