来源:蜘蛛抓取(WebSpider)
时间:2017-04-29 19:11
标签:
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大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。您可以选择一种方式赞助本站