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) <> ""
中应该有=
而不是<>
。【参考方案4】:
您可以使用以下代码检查文本框对象是否为空/空
'Checks if the box is null
If Me.TextBox & "" <> "" Then
'Enter Code here...
End if
【讨论】:
以上是关于EXCEL VBA 检查条目是不是为空或不是“空格”的主要内容,如果未能解决你的问题,请参考以下文章