Excel VBA – date和特定stringinput的validation

我正在寻找解决以下问题的方法:

我需要将一个validation添加到Excel工作表上的特定范围。 validation应该允许任何date和简单的stringinput,如“done”或“tbc”。

我知道如何仅通过VBA添加datevalidation,但我找不到在一个单元格中使用两种validationtypes的方法。

有没有解决我的问题?

提前谢谢了

我可以做的最简单的事情就是去自定义validation,并使用这样的公式:

 =OR(ISDATE(RANGE),(LEN(RANGE)<5)) 

您可以编辑它并使用macros录像机进行录制…或按照build议提供代码。

感谢迄今为止的答案。 我更喜欢VBA解决scheme。 所以我尝试着实现Vityata在VBA中提出的build议,并提出以下几点。 但是,我得到运行时错误1004.任何帮助?

Sub customValidation()

 Dim rngCell As Range With Tabelle1 maxCell = .Cells(.Rows.Count, 1).End(xlUp).Row For Each rngCell In .Range("L11:O" & maxCell) With rngCell.Validation .Delete .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:="=OR(Isdate(rngCell),rngCell=""done"")" .IgnoreBlank = True .InCellDropdown = False .InputMessage = "Enter date or ""done""" .ErrorTitle = "" .InputMessage = "Enter date or ""done""" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Next rngCell End With 

结束小组

这是一个允许date或“TBC”的例子。 在这种情况下,涵盖一个列范围(dynamic解决scheme的一部分)

 Set rng = wksOpenReview.Range(wksOpenReview.Cells (display_row, ro.lco_sd), wksOpenReview.Cells(lngLastRow, ro.lco_sd)) With rng.Validation .Add xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:="=OR( NOT(ISERROR(DATEVALUE(TEXT(" & rng.Cells(1, 1) .Address(False, True, xlA1) & ",""dd/mmm/yyyy""))))," & rng.Cells(1, 1).Address(False, True, xlA1) & "=""TBC"")"