EXCEL VBA 检查条目是不是为空或不是“空格”

Posted

技术标签:

【中文标题】EXCEL VBA 检查条目是不是为空或不是“空格”【英文标题】:EXCEL VBA Check if entry is empty or not 'space'EXCEL VBA 检查条目是否为空或不是“空格” 【发布时间】:2012-12-16 01:07:23 【问题描述】:

注意。使用TextBox1.Value = "" 可以轻松检查TextBox1 是否为空。

但问题是当用户点击spacebar 时,TextBox1 仍然会将其识别为一个值。在这种情况下,我的数据将显示为一个空单元格,其中包含 1 space。所以我的问题是,有没有什么方法可以检查TextBox1.value 是否为空并且不包含space 是否有1 个或多个space?万分感谢。

【问题讨论】:

【参考方案1】:

一个常见的技巧是这样检查:

trim(TextBox1.Value & vbnullstring) = vbnullstring

这适用于空格、空字符串和真正的空值

【讨论】:

尊敬的先生,这非常有效!但它有更短的版本吗?我必须为每个 TextBox 键入或复制/粘贴吗? 您可以使用 "" 代替 vbNullString。 (vbNullString 只是一个指向常见“”实例的内部指针)。但我不担心表达式的长度——它存储在标记中,所以长度无关紧要。要节省输入,您可以使用 Ctrl-C/Ctrl-V 复制/粘贴表达式并根据需要进行更改。 运行良好。从现在开始,我将使用Trim(TextBox1.Value & "") = ""。再次感谢您:) 使用 vbNullString 实际上是一个更好的选择,因为它需要更少的字节大小来执行。【参考方案2】:

我能想到的最简洁的版本

Len(Trim(TextBox1.Value)) = 0

如果您需要多次执行此操作,请将其包装在一个函数中

Public Function HasContent(text_box as Object) as Boolean
    HasContent = (Len(Trim(text_box.Value)) > 0)
End Function

用法

If HasContent(TextBox1) Then
    ' ...

【讨论】:

亲爱的先生,这也很棒。我肯定会在我的项目中使用它。我正在检查很多 TextBox,这将节省时间。非常感谢! 它给了我一个错误Type mismatch。知道这是怎么发生的吗? 可能是因为 TextBox 类。我在这里将其更改为对象,因此应该更正它! 将比较从=改为>,以更好地体现HasContents的含义【参考方案3】:

这是检查值是否存在的代码。

If Trim(textbox1.text) <> "" Then
     'Your code goes here
Else
     'Nothing
End If

我认为这会有所帮助。

【讨论】:

您的代码不起作用,先生。它不检查空格键。顺便说一句,我已经在上面标记了答案,我也非常感谢您更快的回复。再次感谢您! 此代码将从文本框中的值中删除开始和结束空格。代码必须有效,请问您遇到的错误是什么。 对不起,我的误解。我的意思是我想检查用户是否点击了 TextBox1 中的spacebar。您的代码不检查单个和多个space。我想要的是只检查 space 而没有任何其他字母数字。 那么这段代码也可以工作。例如,如果我只在文本框中输入了一个空格而没有其他任何内容,那么此代码将认为该文本框包含 null。如果你想考虑空间,那么你可以是 keyascii 功能。 我已经修改了你的代码,我认为Trim(textbox1.text) &lt;&gt; ""中应该有=而不是&lt;&gt;【参考方案4】:

您可以使用以下代码检查文本框对象是否为空/空

'Checks if the box is null

If Me.TextBox & "" <> "" Then

        'Enter Code here...

End if

【讨论】:

以上是关于EXCEL VBA 检查条目是不是为空或不是“空格”的主要内容,如果未能解决你的问题,请参考以下文章

检查键盘输入是不是为空或不是“Y”或不是“X”

如何检查数据读取器是不是为空或为空

检查所有三列是不是不为空或为空

检查字符串是不是为空或为空的最简单方法

在 XSLT 中检查字符串是不是为空或空

如何检查 MySQL 中的列是不是为空或 null?