Vba Excel-如果为空,如何显示信息或转到下一列
所以这可能有点混乱 我想知道如何让excel显示一个单元格的文本,或者在原始单元格为空时移动到另一列 换句话说,如果A1有“Dog”,我希望它显示“Dog”。但是如果A1是空的,我希望它检查C1。如果C1中有“Cat”,我希望它显示“Cat”。如果C1是空的,我希望它检查E1…以此类推 这可能吗Vba Excel-如果为空,如何显示信息或转到下一列,vba,excel,countif,Vba,Excel,Countif,所以这可能有点混乱 我想知道如何让excel显示一个单元格的文本,或者在原始单元格为空时移动到另一列 换句话说,如果A1有“Dog”,我希望它显示“Dog”。但是如果A1是空的,我希望它检查C1。如果C1中有“Cat”,我希望它显示“Cat”。如果C1是空的,我希望它检查E1…以此类推 这可能吗 谢谢 试试这样的方法: Option Explicit Sub A() Dim rng As Range, cell As Range Set rng = Range("A1:G2") Di
谢谢 试试这样的方法:
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
选项显式
子A()
变暗rng作为范围,单元格作为范围
设置rng=范围(“A1:G2”)
作为布尔值的Dim跳跃
跳转=错误
对于rng中的每个单元
如果jump=False,则
如果(cell.Value“”),则
MsgBox(“行:&cell.row&“,&cell.Column&vbCrLf&”处的单元格内容是:&vbCrLf&cell.Value)
其他的
'如果A1有“Dog”,我希望它显示“Dog”。但是如果A1是空的,我希望它检查C1
跳转=真
如果结束
其他的
跳转=错误
如果结束
下一个细胞
端接头
这是一种可能的方法。请记住,它不会在没有输入的情况下中断,因此它将在到达工作表末尾时抛出错误
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
这似乎有效:
Range("A1").Select
Do While IsEmpty(Selection.Value)
Selection.Offset(0, 2).Select
Loop
MsgBox Selection.Value
我想每个人都有点想得太多了。根本没有理由使用VBA。如果
和为空,只需结合使用Excel公式
=IF(ISBLANK(A1),IF(ISBLANK(C1),E1,C1),A1)
未经测试。我在用手机。至少应该说明这个想法。我也考虑过使用公式。我没有这么做的原因是,他在文章的结尾用了“诸如此类”。如果没有关于使用范围的更多信息,您将不得不捕获行中的每一个其他单元格。d列发生了什么?您要检查的是第一排吗?