我为这段代码尝试了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。我尝试了很多方法,但它一直都是错的。 请帮我。非常感谢。
答案 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