使用count,counta,countblank函数

时间:2014-03-30 08:50:57

标签: excel vba excel-vba

我为这段代码尝试了count,counta和countblank函数,但它不起作用。我的代码是:

Sheet1.Activate
If WorksheetFunction.CountBlank(Range(Cells(3, 3), Cells(50, 3))) > 0 Then
MsgBox "First Enter Data!"
Else
...

如果范围C3到C50中的所有单元格都包含数字,我希望excel进行一些计算,如果不是,则返回msgbox。 所有其他代码都是真的。我已经多次检查过它们了。 问题是,即使所有这些单元格都有数字,也会出现msgbox。我尝试了很多方法,但它一直都是错的。 请帮我。非常感谢。

1 个答案:

答案 0 :(得分:1)

修改

1)如果您的号码存储为文本,请使用以下代码(将单元格格式更改为“数字格式”):

Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("C3:C50")

With rng
    .NumberFormat = "0.00"
    .Value = .Value

    If WorksheetFunction.Count(.Cells) <> .Cells.Count Then
        MsgBox "First Enter Data!"
    Else
        MsgBox "Everything is ok. All cells in range C3:C50 contains numbers"
    End If
End With

2)你也可以使用这个:

Dim c As Range
Dim isAllNumbers As Boolean
isAllNumbers = True

For Each c In ThisWorkbook.Worksheets("Sheet1").Range("C3:C50")
    If Not IsNumeric(c) Or c = "" Then
        isAllNumbers = False
        Exit For
    End If
Next

If Not isAllNumbers Then
    MsgBox "First Enter Data!"
Else
    MsgBox "Everything is ok. All cells in range C3:C50 contains numbers"
End If

您可能还想阅读此内容:How to avoid using Select/Active statements