Excel - 如果显示空白,如何显示信息或转到下一列

时间:2015-01-23 20:50:22

标签: excel vba excel-vba countif

所以这可能有点令人困惑。

我正在试图找出如何获得excel来显示单元格的文本,或者如果原始单元格为空,则移动到另一列。

换句话说,如果A1有“狗”,我希望它显示“狗”。但如果A1是空白的,我希望它检查C1。如果C1中有“Cat”,我希望它显示“Cat”。如果C1是空白的,我希望它检查E1 ......等等。

这可能吗?

谢谢!

4 个答案:

答案 0 :(得分:0)

我认为每个人都过分思考这一点。完全没有理由使用VBA。只需使用Excel公式IFISBLANK的组合。

=IF(ISBLANK(A1),IF(ISBLANK(C1),E1,C1),A1)

答案 1 :(得分:-1)

尝试这样的事情:

Option Explicit

Sub A()

Dim rng As Range, cell As Range  
Set rng = Range("A1:G2")  
Dim jump As Boolean  
jump = False  

For Each cell In rng  
If jump = False Then  
    If (cell.Value <> "") Then  
        MsgBox ("Contents of cell at row:" & cell.Row & "," & cell.Column & vbCrLf & "is:" & vbCrLf & cell.Value)  
    Else  
    'if A1 has "Dog", I want it to display "Dog". But if A1 is blank, I want it to check C1  
    jump = True  
    End If  
Else  
    jump = False  
End If  
Next cell  

End Sub

enter image description here

答案 2 :(得分:-1)

这是一种可行的方法。请记住,在没有输入的情况下它不会中断,因此一旦到达表的末尾就会抛出错误。

Sub ShowText()
    Dim rngStart As Range
    Dim strResult As String

    Const OFFSET_VALUE As Integer = 2


    Set rngStart = ActiveSheet.Range("A1")
    strResult = ""

    Do
        strResult = rngStart.Value
        Set rngStart = rngStart.Offset(, OFFSET_VALUE)
    Loop While strResult = ""

    MsgBox strResult

End Sub

答案 3 :(得分:-1)

这似乎有效:

Range("A1").Select

Do While IsEmpty(Selection.Value)
Selection.Offset(0, 2).Select
Loop

MsgBox Selection.Value