【发布时间】:2023-03-05 04:11:01
【问题描述】:
如何通过 VBA 检查一个单元格是否为空单元格并包含特定信息?
例如:
如果 A:A = "product special" 且 B:B 为 null 则
C1 = "产品特价"
此外,如何在Range 上使用For Each 循环以及如何返回另一个单元格中的值?
【问题讨论】:
如何通过 VBA 检查一个单元格是否为空单元格并包含特定信息?
例如:
如果 A:A = "product special" 且 B:B 为 null 则
C1 = "产品特价"
此外,如何在Range 上使用For Each 循环以及如何返回另一个单元格中的值?
【问题讨论】:
您可以像这样使用IsEmpty() 函数:
...
Set rRng = Sheet1.Range("A10")
If IsEmpty(rRng.Value) Then ...
你也可以使用以下:
If ActiveCell.Value = vbNullString Then ...
【讨论】:
If ActiveCell.Value = vbNullString 将在单元格包含诸如 #N/A! 之类的错误时失败。最好使用 IsEmpty(rRang)
IsEmpty() 是最快的检查方式。
IsNull() 似乎是一个类似的解决方案,但请记住必须将 Null 分配给单元格;它不是在单元格中固有地创建的。
另外,您可以通过以下方式检查单元格:
count()
counta()
Len(range("BCell").Value) = 0
【讨论】:
This站点使用isEmpty()的方法。
编辑:从网站抓取的内容,在 URL 无效之前。
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
在第一步中,Sheet1 的第一列中的数据将被排序。 在第二步中,将删除所有具有相同数据的行。
【讨论】: