excel中禁止使用“清除—全部和格式”命令的VBA如何写?

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式