excel中禁止使用“清除—全部和格式”命令的VBA如何写?
excel本身存在一个致命错误:对被保护工作表中可录入数据的“活动单元格”,一旦执行“清除—全部或格式”命令,“活动单元格”立即锁死,无法再录入数据。所以想用VBA禁止“...
excel本身存在一个致命错误:对被保护工作表中可录入数据的“活动单元格”,一旦执行“清除—全部或格式”命令,“活动单元格”立即锁死,无法再录入数据。所以想用VBA禁止“清除—全部或格式”命令。
展开
4个回答
展开全部
为了验证你的问题特意去看了看,是这样,清除全部是selection.clear,会把单元格恢复到原始的状态,即锁定状态,所以在你保护的表上当然无法编辑了,
我能想到的方法1,禁止菜单的“清除”菜单项(disable),或者干脆删掉这个项。具体可以参考下commandbar的对象属性及方法
方法2,用onchange事件,在工作表中添加这个事件,当有内容被改变可以检查下是否有单元格被锁定,锁定的解锁之。。。onclear这种事件是没有的。。。。
有问题的话可继续提问,望采纳
我能想到的方法1,禁止菜单的“清除”菜单项(disable),或者干脆删掉这个项。具体可以参考下commandbar的对象属性及方法
方法2,用onchange事件,在工作表中添加这个事件,当有内容被改变可以检查下是否有单元格被锁定,锁定的解锁之。。。onclear这种事件是没有的。。。。
有问题的话可继续提问,望采纳
更多追问追答
追问
如何在工作表中添加onchange这个事件?具体代码怎样写?请赐教。
追答
alt+f11,打开vb编辑器,在左边双击一个工作表,在右边下拉表选worksheet,最右边选相应的事件change,下边会自动出现类似的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
下边,你该知道怎么做啦
展开全部
添加工作表事件如下:两个引号内的密码你自己加上,保护的选项自己更改。
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:=""
Target.Locked = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=""
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:=""
Target.Locked = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=""
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
知道有类似代码,你搜搜
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-21
展开全部
水平有限,只知道在EXCEL2003中使用VBA代码对这两个菜单进行屏蔽,EXCEL2007以上版本用VBA操作选项卡和功能区,貌似是一门学问,目前懂的人不是特别多吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询