我有一个Excel 2010工作表,内容编辑器用它来重写网址。当然,不允许输入某些字符,但无论如何它们都是这样做的。所以我想对此设置一个规则。
为简单起见,我们只需要空格。
我选择相关列,转到数据>数据验证,选择允许>自定义,然后输入SUM(IFCOUNT(“”))> 0。这不起作用,它会对该列中的每个值生成错误,即使它中没有任何空格。对于空格,我也使用TRIM(),SUBSTITUTE(“”,“”),但它们都会导致相同的结果。
那么,阻止用户在Excel工作表的特定列的单元格中输入或添加空格或任何其他非法字符的最佳方法是什么?
提前致谢。
答案 0 :(得分:0)
以下是您可以实施的选项之一(使用VBA)。关于限制用户输入,我个人会使用UserForms直接输入到工作表中,就像在UserForms中一样,您可以更好地控制用户可以做什么以及不能做什么。
Public bUpdate As Boolean
Sub Worksheet_Change(ByVal Target As Range)
If bUpdate = False Then 'avoid infinite loop
bUpdate = True 'flag start
Dim sCharacters() As Variant
sCharacters = Array(" ", ",", ".")'list of Invalid Characters
Dim sItem As Variant
For Each sItem In sCharacters
Target.Value = Replace(Target.Value, sItem, vbNullString)
Next sItem
bUpdate = False 'flag process ended
End If
End Sub