我正在上大学,需要检查一些特定的单元格是否为空白。如果它们为空,我需要在其中写一些东西。我试图编写一个程序,但没有成功,向我显示了错误:13。
这是我的代码:
Option Explicit
Sub Test()
If Range("a1:e1").Value = "" Then
Range("a1:e1") = "x"
End If
End Sub
谢谢您的帮助!
答案 0 :(得分:2)
如果范围包含1个单元格,则其.Value
属性将返回单个标量值。
但是,如果范围包含多个单元格,则其.Value
属性将返回一个数组。
您可以遍历范围内的所有单元格以查看它们是否都为空。另外,您可以使用WorksheetFunction.CountBlank
查看范围内的空白数量是否与范围内的单元格数量匹配。
With Range("a1:e1")
If WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Range("a1:e1") = "x"
End If
End With
答案 1 :(得分:1)
如果此范围内的一个单元格不为空,则不清楚要做什么。
既然您已经填写了要填充单元格如果它们都是空白的情况,那么我将介绍您要检查范围内是否有任何空白单元格的情况,如果是,则将其填充。
Dim cell As Range
For Each cell In Range("A1:E1").Cells
If cell.Value = "" Then
cell.Value = "x"
End If
Next cell
答案 2 :(得分:1)
您也可以使用WorksheetFunction.CountA
。它计算非空单元格。像这样:
If WorksheetFunction.CountA(Range("a1:e1")) = 0 Then
Range("a1:e1") = "x"
End If
它与TinMan的代码相同。但是检查是不同的。
答案 3 :(得分:1)
您可以尝试以下代码:
Sub Test()
Dim rng As Range
Set rng = Range("A1:E1")
' if we come upon non-empty cell we exit sub and do nothing
For Each cell In rng
If Not IsEmpty(cell) Then Exit Sub
Next
' if we reached this, all cells are empty
rng.Value = "x"
End Sub