空单元格不是空的?

我有一个空单元格的问题。 我想跳过空单元格,但我不知道,如何设置IF条件。 当我通过F8进行debugging时,单元显示为EMPTY,但是IF条件转到THEN。 感谢您的想法;)

For i = 5 To 76 If i = 62 Or i = 63 Or i = 64 Then GoTo prechod Set myRange = actsheet.Range("V" & CStr(i)) If Not IsEmpty(myRange.Value) Or Not IsError(myRange.Value) Or myRange.Value <> "" Or myRange.Value = Empty Then hodsheet.Range("A" & CStr(hity)).Value = myRange.Value hodsheet.Range("B" & CStr(hity)).Value = myRange.Offset(0, 1).Value hodsheet.Range("C" & CStr(hity)).Value = myRange.Offset(0, 7).Value hodsheet.Range("D" & CStr(hity)).Value = ThisWorkbook.Sheets(1).Range("A7").Value hodsheet.Range("E" & CStr(hity)).Value = "nocni" hity = hity + 1 End If prechod: Next i 

要检查单元格是否为空,我们实际上可以使用Len(Trim(Cell.Value))

Microsoft Excel Visual Basic LEN函数返回指定string的长度。 Ex Len("Sid")会给你3

Microsoft Excel Visual Basic TRIMfunction可从文本中去除额外的空格,在文本的开头或结尾处只留下单词之间的单个空格,并且不会有空格字符。 对于前TRIM(" SID ")会给你SID

通过结合这两个Len(Trim(myRange.Value)) ,我们正在做的是首先修剪单元格值,然后find长度。 所以如果单元格值是" "Trim()将删除空格, LEN()会给你0

因此你需要使用

 If Not Len(Trim(myRange.Value)) = 0 

将它整合到您的代码中

 If Not Len(Trim(myRange.Value)) = 0 And Not IsError(myRange.Value) Then 

首先,所有从input数据中select,并去replace选项,replace为 – ,0或任何不会影响你的输出的字符