如何使用VBA判断一个excel单元格是空单元格

如何使用VBA判断一个excel单元格是空单元格,而不是里面有空格的单元格(看起来是空的,实际上里面是有空格,这些空格任然会被计算机认为是字符)
简单点儿说就是: 通过程序分辨一个单元格是真的空的,还是里面实际上有空格
前面几位说的我都试过了,没有效果。
1. 用len()函数判断目标单元格时,会显示目标单元格(看起来为空的)内的字符长度为1.
2.通过查找/替换功能在数据表中(包括目标单元格)都没有找到“空格”字符
3.通过match()函数在目标单元格中也没有找到匹配的空格
4.通过if语句判断空格是否=""是不行的,不要再发了,看起来是空白的单元格其实是非空的,如果里面没有字符,显示长度为1,如果有一个字符,则显示长度为2.

诡异吧,
进一步说明一下,这个表格是通过VBA程序从word格式导入的,导入后,原来是空白的地方就出现了计算机才能觉察到的“非空白”,严重影响了我对单元格是空还是非空的判断

1. 在VBA中引用工作表函数,如:
Application.WorksheetFunction.CountBlank(Range("A1"))
2. if isempty([a1]) then msgbox "A1为空"
if iserror([a1]) then msgbox "A1为错误标识"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-14
用isempty函数即可判断的
如:
If IsEmpty(ActiveCell) Then
MsgBox "真空!", vbInformation
Else
MsgBox "不为空!", vbInformation
End If
第2个回答  2013-01-28
嘿嘿,我在这里回答。只要再加个条件判断。就是len(单元格)=0 或者(len(单元格)<>0 并且TRIM(单元格)="")。这样就全找到了。不知道行不行,试试。
第3个回答  2011-09-14

Sub aaa()
For i=1 to 30
If cells(i,1)="" then
n=n+1
end if
next
if n=30 then msgbox ("空了")
end sub
第4个回答  2011-09-14
if range("a1")=''" then
...
end if
相似回答