VBA如何识别列的内容是否为数字?

时间:2018-01-08 11:30:46

标签: database excel vba excel-vba numeric

我有关于Excel VBA的问题。我必须自动执行此任务。 是否有可能检查整列的内容(不是单元格格式)是否为数字(仅包含数字)?当然,我知道可以采用另一种方式,即逐个单元地下行。 我知道set过滤器可以识别列是否为数字。如何通过VBA获取此信息?

2 个答案:

答案 0 :(得分:3)

COUNT计算数字; COUNTA统计数字和文字。

=Count(A:A)=CountA(A:A)

...如果列A仅包含数字,则返回true。在VBA中,

Debug.Print CBool(Application.Count(Columns(1))=Application.CountA(Columns(1)))

要将类似文本的数字转换为真数,请在列上使用TextToColumns,固定宽度,完成。

 Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)

答案 1 :(得分:0)

可能是最简单的解决方案:

Sub TestMe()

    Dim myCell  As Range
    Dim myCol   As Range

    Set myCol = Worksheets(1).Columns(1).Cells.SpecialCells(2)

    For Each myCell In myCol.Cells
        If Not IsNumeric(myCell) Then
            Debug.Print myCell.Address
            Exit For
        End If
    Next myCell

End Sub

下一步,尝试编写一个布尔函数,该函数将工作表和列进行搜索。它可以使用。