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

如何通过VBA宏实现E14选No时锁定E15、E16单元格

VBA实现下拉选项控制单元格锁定解锁

操作流程

  • 打开目标Excel文件,按快捷键Alt+F11启动VBA编辑器
  • 在左侧工程资源管理器面板,双击需要实现功能的对应工作表,打开该工作表的专属代码编辑窗口
  • 将下方代码粘贴到代码窗口中,根据自身实际情况调整工作表保护密码参数,最后将文件保存为.xlsm(启用宏的工作簿)格式即可生效
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 仅当E14单元格值发生变化时触发逻辑
    If Not Intersect(Target, Me.Range("E14")) Is Nothing Then
        ' 关闭事件触发,避免递归调用导致报错
        Application.EnableEvents = False
        On Error GoTo ErrHandler
        
        ' 解除工作表保护,有密码请将下方YourPassword替换为实际密码,无密码则删除Password参数
        Me.Unprotect Password:="YourPassword"
        
        Select Case UCase(Trim(Me.Range("E14").Value))
            Case "NO"
                ' 选择No时锁定E15、E16禁止编辑
                Me.Range("E15:E16").Locked = True
            Case "YES"
                ' 选择Yes时解锁E15、E16允许编辑
                Me.Range("E15:E16").Locked = False
        End Select
        
        ' 重新开启工作表保护
        Me.Protect Password:="YourPassword"
    End If

ErrHandler:
    ' 无论是否报错,都恢复事件触发机制
    Application.EnableEvents = True
End Sub

注意事项

  • Excel中单元格的Locked锁定属性仅在工作表开启保护状态下生效,未开保护时锁定配置不会起作用
  • 如果你没有给工作表设置保护密码,直接删除代码里两处Password:="YourPassword"参数即可
  • 不要把这段代码放到普通标准模块中,必须放在对应工作表的代码模块内,否则值变化时无法自动触发逻辑
  • 保存文件时必须选择.xlsm格式,否则宏代码会被清除,功能无法正常使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:12:32