如何在Excel中为特定列设置数据验证公式

时间:2014-06-19 12:41:48

标签: excel validation excel-formula invalid-characters

我有一个Excel 2010工作表,内容编辑器用它来重写网址。当然,不允许输入某些字符,但无论如何它们都是这样做的。所以我想对此设置一个规则。

为简单起见,我们只需要空格。

我选择相关列,转到数据>数据验证,选择允许>自定义,然后输入SUM(IFCOUNT(“”))> 0。这不起作用,它会对该列中的每个值生成错误,即使它中没有任何空格。对于空格,我也使用TRIM(),SUBSTITUTE(“”,“”),但它们都会导致相同的结果。

那么,阻止用户在Excel工作表的特定列的单元格中输入或添加空格或任何其他非法字符的最佳方法是什么?

提前致谢。

1 个答案:

答案 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