Excel数据验证 - 正则表达式?

时间:2013-01-16 21:02:07

标签: excel validation

我在Excel 2007电子表格中有一个列,我希望将数据限制为值“COM [1-4]或1-65535”。如何让Excel执行这组值?

TY, 佛瑞德

4 个答案:

答案 0 :(得分:7)

您需要创建支持正则表达式的自定义VBA函数(或宏)。我个人这样做了,所以我知道这是可能的: - )

如果这是一次性问题,可以使用复杂的FIND() / MID() / SUBSTITUTE()等来解决(这实际上是我的日常工作),但除非你想盯着一个充满Excel功能的5行单元,否则我不会推荐这个。

修改:如果您有或需要提供更多信息,我会更新此信息。

编辑:以下是在Excel中将正则表达式用作函数的方法:

Function REFIND(strValue As String, strPattern As String, Optional blnCase As Boolean = True) As Boolean

    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
End Function

答案 1 :(得分:6)

不是很灵活,但您可以使用自定义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)))

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

答案 2 :(得分:3)

在功能区&gt;&gt;中使用以下内容数据&gt;&gt;数据验证。然后Allow = Custom并在公式中添加以下内容:

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

答案 3 :(得分:0)

对于这个具体问题,使用标准数据验证可以使用没有VBA,正则表达式或所需的公式:

允许:列表 资料来源:“COM1,COM2,COM3,COM4,​​1-65535”

这还在单元格中提供了一个下拉列表来帮助用户。