Excel:如何使用VBA检查单元格是否为空?

Reg*_*lva 64 excel vba excel-vba

可能重复:
使用VBA检查下面的单元格是否为空

作为VBA通过检查一个单元格是否为空,具有特定信息?例如:如果A:A ="产品特殊"而B:B为空则C1 ="产品特殊"这只是一个想法. 在此输入图像描述

以及如何在范围内使用For Each.并返回其他单元格中的值?

Syl*_*lca 62

你可以使用这样的IsEmpty()函数:

...
Set rRng = Sheet1.Range("A10")
If IsEmpty(rRng.Value) Then ...
Run Code Online (Sandbox Code Playgroud)

你也可以使用以下内容:

If ActiveCell.Value = vbNullString Then ...
Run Code Online (Sandbox Code Playgroud)

我不是VBA程序员所以你不介意吗?!

希望能帮助到你

  • 你给IsEmpty()的范围而不是值.它返回true或false,因此您需要一个'if'语句.你需要写:如果是IsEmpty(rRng)那么......我正在编辑并纠正答案 (5认同)
  • 请注意,如果单元格包含#N/A等错误,则"如果ActiveCell.Value = vbNullString"将失败!最好使用IsEmpty(rRang) (3认同)

小智 20

IsEmpty() 将是检查的最快捷方式.

IsNull()看起来似乎是一个类似的解决方案,但请记住Null必须分配给单元格; 它本身并不是在单元格中创建的.

此外,您可以通过以下方式检查单元格:

count()

counta()

Len(range("BCell").Value) = 0


rep*_*ter 10

站点使用该方法isEmpty().

编辑:从网站抓取的内容,在网址无效之前.

Worksheets("Sheet1").Range("A1").Sort _
    key1:=Worksheets("Sheet1").Range("A1")
Set currentCell = Worksheets("Sheet1").Range("A1")
Do While Not IsEmpty(currentCell)
    Set nextCell = currentCell.Offset(1, 0)
    If nextCell.Value = currentCell.Value Then
        currentCell.EntireRow.Delete
    End If
    Set currentCell = nextCell
Loop
Run Code Online (Sandbox Code Playgroud)

在第一步中,Sheet1第一列中的数据将是排序.在第二步中,将删除具有相同数据的所有行.