设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
开启左侧

[OFFICE] 如何保证“数据有效性”在“复制、粘贴”情况下有效

[复制链接]
发表于 2019-5-8 14:08:22 | 显示全部楼层 |阅读模式
************************************************
**如何保证“数据有效性”在“复制、粘贴”情况下有效**
************************************************
EXCEL“数据有效性”有一个致命的缺点:用“复制、粘贴”方式录入数据时“数据有效性”就会失效,输入的数据就不受控制了。有人可能会说规定下面的人不准复制粘贴、必须逐个输入就行了。这个办法不是不行,但是不保证百分之百行,下面的人要是都这么听话的话管理工作就简单了。而且,不让复制
粘贴会影响工作效率,明明有现成的数据为什么不让人家复制、粘贴偏偏要人家逐个输入呢?只要这些数据符合“数据有效性”就行了。这里跟大家分享一下如何处理这个问题。

1.把下面的代码放进你要下发的工作簿里面。
  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2. Dim rng As Range
  3. For Each rng In Target
  4. If Not rng.Validation.Value Then
  5. Application.Undo
  6. MsgBox prompt:="粘贴数据超出可输入范围!", Title:="输入提示"
  7. Exit For
  8. End If
  9. Next
  10. End Sub
复制代码


2.如果你对VBA 不熟悉的话,按以下方式放进你的工作簿VBA 编码环境中就可以了:
右击工作表标签“Sheet1”,选择“查看代码”即可进入VBA 编辑环境。

1.bmp

双击左边ThisWorkbook 标签,在右边空白处将以上代码粘贴上去,关闭VBA 编辑环境。

2.bmp


3.默认情况下所有单元格都是被“锁定”的。为了保证在“复制、粘贴”情况下“数据有效性”仍然生效,在保存工作簿前将会设置“保护工作表”,设置“保护工作表”后有“锁定”的单元格将无法输入数据。因此,在设置“保护工作表”前要取消需要输入数据的单元格的“锁定”属性。
具体操作如下:
选择需要输入数据的单元格或单元格区域,选择“开始-单元格-格式-设置单元格格式”(也可以右击所选单元格或区域然后选择“设置单元格格式”),在“设置单元格格式”界面选择“保护”,去除“锁定”前的“√”即取消了“锁定”,但是对于不需输入数据的单元格特别是表头或有公式的单元格尽量不要取消“锁定”,避免录入人员误操作删除了表头项或公式。
3.bmp


4.设置“保护工作表”、“保护工作簿”
(1). 设置“保护工作表”
上面已经说了必须设置“保护工作表”才能保证“数据有效性”在“复制、粘贴”情况下仍然生效,因此这一步必不可少。“保护工作表”设置如下:
5.bmp

一般情况下按照“允许此工作表的所有用户进行”栏默认选择即可。
“取消工作表保护里使用的密码”尽可能输入密码以确保工作表不让录入人员随意取消“保护工作表”

(2). 设置“保护工作簿”
设置“保护工作簿”不是必须的,但是建议下发的工作簿都设置“保护工作簿”,可以保证工作表的名称、位置不
被改动,也不能插入或删除工作表。设置“保护工作簿”如下,有必要的可同时设置“保护工作簿”密码:

6.bmp

5.保存工作簿
设置完“保护工作表”、“保护工作簿”后保存工作簿,因为这个工作簿含有VBA 代码,保存时会弹出如下窗口:
7.bmp

选择“否”,“保存类型”选择“Excel 启用宏的工作簿”或者“Excel 97-2003 工作簿”再按“保存”就可以了。
8.bmp

以上已经完成工作表的设计及“数据有效性”的设置,现在重新打开刚才的工作簿,输入数据测试一下,“数据有
效性”生效,而且在“复制、粘贴”情况下也生效,当粘贴不符合“数据有效性”的数据时,EXCEL 将会出现如下的提
示界面,而且数据无法粘贴。但是如果数据符合规定的话就可以粘贴进去:

9.bmp
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-3-19 13:45 , Processed in 0.207030 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表