-1

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

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

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

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

提前致谢。

4

1 回答 1

0

这是您可以实现的选项之一(使用 VBA)。关于限制用户输入,我个人会使用用户表单而不是直接输入到工作表中,因为在用户表单中,您可以更好地控制用户可以做什么和不能做什么。

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
于 2014-06-19T13:36:19.233 回答