在Excel中执行一个通过VBA添加validation

我有一个关于Excel 2010 VBA的问题。 我不知道正确的英语Excel术语,因为我使用德语Excel版本。 但我会尽我所能。 对不起。

在VBA中,我为一个单元格(列表select)设置了数据validation。 如果单元格已经设置了一个值,它仍然在单元格中,但是它可能不能完成数据validation。 是否有可能通过VBA执行刚刚设置的数据validation,如果validation未填满,则清除单元格中的值?

提前致谢。

甚至显示一些代码将有助于跨越语言障碍,并帮助我们回答这个问题; 不过,我假设你问是否可以使用VBA代码评估validation本身。 您可以。

validation对象具有可以评估的.Value属性 :

If Not validation.Value Then cell.ClearContents End If 

试试这个:

 Sub PlaceDV() Dim r As Range Dim v As String sValid = "alpha,beta,gamma" Set r = ActiveCell v = CStr(r.Value) If InStr(1, sValid, v) = 0 Then r.ClearContents End If With r.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=sValid .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub