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"")"