我在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单元格进行搜索,因此如果执行此过程的方法较少,建议也会很好。
任何帮助都会受到赞赏,我再也不了解这些东西,所以如果一切都错了,请随时说出来。
答案 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打开该特定功能的帮助! ;)