excel2007中VBA如何实现某一excel单元格选择内容内容变化触发某一事件?

查看: 2386|回复: 9
用VBA,当单元格发生变化时,触发userform1
求助各位大侠:
我想用VBA禁止更改单元格数值。
试了用保护工作表的方式,但共享工作簿后就不好用了。
所以用弹出窗体的方式
但做了两个,发现还是可以更改,改了之后才弹出窗体
如果用下面的代码,可以解决这个问题,但是只要选一个单元格就出现窗体,影响效果
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UserForm1.Show
最好是选中单元格时不显示窗体,当更改单元格内容时显示窗体,可以做到吗?
13:40 上传
点击文件名下载附件
45.91 KB, 下载次数: 8
14:00 上传
点击文件名下载附件
48.48 KB, 下载次数: 9
不太明白意思?
当更改单元格内容时&&是什么意思?
& &更改单元格内容后 就是 worksheet_Change
2楼大侠,好像不对,我想要不输入密码,就不能修改,可是这个是修改之后跳出窗体
如果要记录的是内容的变化 而不是双击进去的操作 可能就要加其他代码&&确保内容变化了 才显示
本帖最后由 易安1 于
14:32 编辑
按照你现在的意思修改为&&&
14:32 上传
点击文件名下载附件
45.61 KB, 下载次数: 17
不好意思,可能是我表达有问题,我不是想变成打开表格时体现的窗体,我是想控制某一个工作表不能修改。如果修改要有密码。
用Excel是因为方便,如果你这也限止那也限止,那就有点不太好了
你的问题,用selectingchange套个textbox
但是这得要求一次只能选择一个单元格,如果选择的单元格多了,用代码强制给他选择所选单元格区域中的第一个单元格
然后在事件里调用textbox,并把单元格中的值赋给textbox,让用户误认为自己选择的是textbox
当用户要修改值的时候,会触发textbox的事件,然后你就在事件里弹出密码窗口,让用户先输入密码。。就行了
Private Sub worksheet_Change(ByVal Target As Range)
& &'UserForm1.Show
Application.EnableEvents = False
& &If MsgBox(&密码正确&, vbOKCancel) = vbOK Then
& && &Target = m
Application.EnableEvents = True
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
m = Target
密码正确就同意修改,密码不正确就恢复到原值
Powered by2017年3月 VB大版内专家分月排行榜第二2016年12月 VB大版内专家分月排行榜第二2016年10月 VB大版内专家分月排行榜第二2013年11月 VB大版内专家分月排行榜第二
2016年3月 VB大版内专家分月排行榜第三2012年9月 VB大版内专家分月排行榜第三
2015年4月 VB大版内专家分月排行榜第二2015年3月 VB大版内专家分月排行榜第二2014年11月 VB大版内专家分月排行榜第二2014年10月 VB大版内专家分月排行榜第二
2014年4月 VB大版内专家分月排行榜第三
2015年4月 VB大版内专家分月排行榜第二2015年3月 VB大版内专家分月排行榜第二2014年11月 VB大版内专家分月排行榜第二2014年10月 VB大版内专家分月排行榜第二
2014年4月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。您可以选择一种方式赞助本站

我要回帖

更多关于 excel引用单元格内容 的文章

 

随机推荐