在VBA Excel

时间:2015-07-20 15:30:27

标签: excel vba excel-vba

我在Excel中使用VBA尝试编写一些宏,但是,我对这个过程很陌生。

目前,我正在尝试使用for循环在列中搜索非数字值。为此,我写了以下内容:

rwcnt = WorksheetFunction.CountA(Range("A:A"))
Dim i As Integer

For i = 1 To rwcnt
    If Cells(i, 1).Value = Not IsNumeric Then
        Cells(i, 1).Select
        Range(Selection, Selection.End(xlDown)).Select
        Exit For
    End If

这会返回一个错误,说明参数不是可选的,它会突出显示IsNumeric。

我想要完成的是搜索A列并在我的标题之外选择包含非数字字符的第一个单元格。此外,这是通过> 100K单元格进行搜索,因此如果执行此过程的方法较少,建议也会很好。

任何帮助都会受到赞赏,我再也不了解这些东西,所以如果一切都错了,请随时说出来。

2 个答案:

答案 0 :(得分:5)

以下代码应该可以正常工作,请注意我如何使用IsNumeric

Sub t()
rwcnt = WorksheetFunction.CountA(Range("A:A"))
Dim i As Integer

For i = 1 To rwcnt
    If Not (IsNumeric(Cells(i, 1).Value)) Then
        range(Cells(i, 1).address, Cells(i, 1).End(xlDown).address).Select
        Exit For
    End If
Next
End Sub

你也不需要所有选择,上面的结果相同

答案 1 :(得分:2)

IsNumeric()是一个测试表达式的函数,因此它应该像这样使用:

rwcnt = WorksheetFunction.CountA(Range("A:A"))
Dim i As Integer

For i = 1 To rwcnt
    If IsNumeric(Cells(i, 1).Value) <> True Then
        Cells(i, 1).Select
        Range(Selection, Selection.End(xlDown)).Select
        Exit For
    End If
Next i

在VBA编辑器中,按F2查看对象浏览器以获取有关功能的信息,然后按F1打开该特定功能的帮助! ;)