我的空单元格有问题。我想跳过空单元格,但我不知道如何设置IF条件。当我通过F8调试时,单元格显示EMPTY,但IF条件转到那么。谢谢你的想法;)
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
答案 0 :(得分:1)
要检查单元格是否为空,我们实际上可以使用Len(Trim(Cell.Value))
。
Microsoft Excel Visual Basic LEN
函数返回指定字符串的长度。 Ex Len("Sid")
将为您提供3
Microsoft Excel Visual Basic TRIM
函数从文本中删除多余的空格,在单词之间只留下一个空格,在文本的开头或结尾处不留空格字符。 Ex TRIM(" SID ")
将为您提供SID
通过组合这两个Len(Trim(myRange.Value))
我们正在做的是首先修剪单元格值然后找到长度。因此,如果单元格值为" "
,则Trim()
将删除空格,LEN()
将为您提供0
因此你需要使用
If Not Len(Trim(myRange.Value)) = 0
将其合并到您的代码中
If Not Len(Trim(myRange.Value)) = 0 And Not IsError(myRange.Value) Then
答案 1 :(得分:-2)
首先从输入数据中选择所有并转到替换选项,替换为 - ,0或任何不会影响输出的字符