我在Excel 2007电子表格中有一个列,我希望将数据限制为值“COM [1-4]或1-65535”。如何让Excel执行这组值?
TY, 佛瑞德
答案 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”
这还在单元格中提供了一个下拉列表来帮助用户。