如何用VBA宏保护工作簿中所有工作表的首行
保护活动工作表首行的VBA宏实现
以下是实现需求的VBA宏代码,可直接使用:
Sub ProtectFirstRow() Dim ws As Worksheet Set ws = ActiveSheet ' 若工作表已保护,先解锁 If ws.ProtectContents Then ws.Unprotect Password:="你的密码" ' 替换为自定义密码,无需密码则删除该参数 End If ' 解除所有单元格锁定状态 ws.Cells.Locked = False ' 锁定首行 ws.Rows(1).Locked = True ' 重新保护工作表,仅限制用户界面操作,保留筛选权限 ws.Protect Password:="你的密码", UserInterfaceOnly:=True, AllowFiltering:=True End Sub
关键细节说明
- 替换代码中的
"你的密码"为实际密码,不需要密码保护可直接移除Password:="你的密码"部分 UserInterfaceOnly:=True:设置后VBA代码可直接操作工作表,无需反复解锁,仅限制用户手动编辑锁定区域AllowFiltering:=True:保留首行的筛选功能,不需要可删除该参数
使用步骤
- 打开目标Excel文件,按
Alt + F11打开VBA编辑器 - 右键点击左侧工作簿名称,选择「插入」→「模块」
- 将上述代码粘贴到新建模块中
- 返回Excel界面,按
Alt + F8,选择ProtectFirstRow执行宏
内容的提问来源于stack exchange,提问作者Campbell
相关产品推荐
相关产品推荐

