Excel数据validation – 正则expression式?

我在Excel 2007电子表格中有一列,我想将数据限制为值“COM [1-4]或1-65535”。 我怎样才能让Excel执行这组值?

TY,Fred

您将需要创build一个支持正则expression式的自定义VBA函数(或macros)。 我亲自做过,所以我知道这是可能的:-)

如果这是一次性问题,可以通过使用一个复杂的FIND()/ MID()/ SUBSTITUTE()等来解决(这实际上是我的日常工作),但除非您要盯着一个可能的5线电池充满Excelfunction。

编辑:我会更新这个,如果你有或需要更多的信息提供。

编辑:这是如何在Excel中使用正则expression式作为一个函数:

函数REFIND(strValue作为string,strPattern作为string,可选blnCase作为布尔=真)作为布尔

Dim objRegEx As Object Dim blnValue As Boolean ' Create regular expression. Set objRegEx = CreateObject("VBScript.RegExp") objRegEx.Pattern = strPattern objRegEx.IgnoreCase = blnCase ' Do the search test. blnValue = objRegEx.Test(strValue) REFIND = blnValue End Function 

结束function

不是非常灵活,但您可以使用自定义Data Validation ,使用以下公式:

 =OR(AND(LEN(A2)=4,LEFT(A2,3)="COM",MID(A2,4,1)>="1",MID(A2,4,1)<="4"),OR(AND(A2>=1,A2<=65535))) 

我认为这会缩小到您在评论中指定的内容。

在function区>>数据>>数据validation中使用以下内容。 然后Allow = Custom并在公式中添加下面的内容:

 =OR(AND(E5 >= 1, E5 <= 65535), E5 = "COM1", E5 = "COM2", E5 = "COM3", E5 = "COM4")