限制范围文本长度

时间:2018-02-06 16:33:48

标签: excel vba validation

我遇到了一个问题,我在Excel中的特定列中为字符= 10设置了数据验证。我的问题是,如果用户粘贴在单元格上,则数据验证会被覆盖。有没有办法通过使用VBA来实现文本限制,它会提醒用户在定义范围内的单元格中只有10个字符?如果用户粘贴在单元格上,则不会被覆盖?

1 个答案:

答案 0 :(得分:3)

将其粘贴到工作表的模块中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    For Each cell In [E14:E1000]
        If Len(cell) <> 10 Then
            MsgBox "Text length in cell """ & cell.Address(0, 0) & """ does not equal to 10.", vbExclamation
            Application.Undo
            Exit For
        End If
    Next
End Sub

<强>解释

将文本粘贴到工作表上时,该过程会扫描范围中的每个单元格。一旦找到长度超过10的文本,它就会通知用户哪个单元格突破了限制并撤消了Application.Undo的所有更改。然后它会立即退出。