我在 Excel 2007 电子表格中有一个列,我希望将数据限制为值“COM [1-4] 或 1-65535”。如何让 Excel 强制执行这组值?
泰,弗雷德
我在 Excel 2007 电子表格中有一个列,我希望将数据限制为值“COM [1-4] 或 1-65535”。如何让 Excel 强制执行这组值?
泰,弗雷德
不是很灵活,但你可以使用 Custom 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)))
我认为这可以将其范围缩小到您在评论中指定的范围。
您将需要创建一个支持正则表达式的自定义 VBA 函数(或宏)。我亲自做过,所以我知道这是可能的:-)
如果这是一次性问题,可以通过使用复杂的FIND()
/ MID()
/SUBSTITUTE()
等来解决(实际上这是我的日常工作),但我不建议这样做,除非你想盯着可能的 5 行单元格充满Excel功能。
编辑:如果您有或需要提供更多信息,我会更新此信息。
编辑:这是在 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
在功能区 >> 数据 >> 数据验证中使用以下内容。然后 Allow = Custom 并在公式中添加以下内容:
=OR(AND(E5 >= 1, E5 <= 65535), E5 = "COM1", E5 = "COM2", E5 = "COM3", E5 = "COM4")
对于这个特定问题,使用标准数据验证无需 VBA、Regex 或公式即可工作:
允许:列出源:“COM1,COM2,COM3,COM4,1-65535”
这还在单元格中提供了一个下拉列表以帮助用户。