我遇到了一个问题,我在Excel中的特定列中为字符= 10设置了数据验证。我的问题是,如果用户粘贴在单元格上,则数据验证会被覆盖。有没有办法通过使用VBA来实现文本限制,它会提醒用户在定义范围内的单元格中只有10个字符?如果用户粘贴在单元格上,则不会被覆盖?
答案 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
的所有更改。然后它会立即退出。