注册 登录
编程论坛 Excel/VBA论坛

VBA控制数据有效性的工作表事件

c2003921 发布于 2023-09-11 10:18, 273 次点击
请教各位高手:

       我用vba工作表事件设置数据有效性,主要实现几个功能:
       1、禁止复制粘贴;
       2、禁止越过左侧列表直接填右侧列表,即必须自左向右逐一选择,不能跳、不能空;
       3、当删除左侧已选项时,自动删除同一行的右侧已选项;
       4、当同一行右侧有内容而左侧某列为空值时,该行3列内容全部清空,禁止不选左侧直接手工填入右侧内容,以防数据有效性失效。
       说明:“省市县名单”为数据源,“下拉表”中ABC共3列为实际操作区域。

      但是,实际执行中主要存在2个问题,全部集中在附件的第一段程序中:
      1、ABC 3列全部选择填充后,若删除A列单元格内容,如果不使用On Error Resume Next,会报错,但也能得到想要的结果(即BC列的内容自动清空);
      2、本来觉得这个程序运行的还可以,但在部分语句的后面加了msgbox提示后,才发现其实运行过程中浪费了很多时间,有时候要对msgbox信息点击50多次。
      3、意外发现的一个小问题,本来我设计的操作区是ABC列,但第5行的D列及以后不知为什么也出现了数据有效性选项,而且删除此行后不知什么时候又出现了。

      请帮我看看,如何解决这2个问题。
只有本站会员才能查看附件,请 登录



[此贴子已经被作者于2023-9-11 15:34编辑过]

0 回复
1