VBA第二十七期 数据录入中验证格式有效性
Excel的数据有效性验证是一个有用的工具,但会需要我们向使用数据单元格提前设定有效性验证规则。这样一来使数据的有效性验证功能不能使用在VBA编程中。下面介绍如何在工作表中使用Change事件来创建数据有效性验证过程。监视单元格区域验证数据输入的有效性,利用Excel数据有效性验证功能,保证用户在粘贴数据时,进行数据有效性验证,实例如下
Private Sub WkshtChg (ByVal Target As Range)
Dim VT As Long
'Do all cells in the validation range
'still have validation?
On Error Resume Next
VT=Range ("InputRange").Validation.Type
If Err. Number <>0 ThenApplication. UndoMsgBox "Your last operation was canceled. "&-
"It would have deleted data validation rules. ", vbCritical
End If
End Sub这个事件过程检查应当包含数据有效性验证规则的单元格区域(名为InputRange)内的验证类型。如果VT变量包含一个错误,这意味着InputRange中的一个或多个单元格不再包含数据有效性验证。换言之,工作表的改变可能是由于数据被复制到包含数据有效性验证的单元格区域中引的。如果是这样,那么代码会执行Application 对象的Undo方法,撤消用户的行为。
注意:仅当验证单元格区域的所有单元格包含相同的数据验证类型时,该过程才能正确工作。注意:使用该过程的另一个好处是Undo堆栈不会被销毁。