2015-07-20 189 views
2

我在Excel中使用VBA嘗試編寫一些宏,但是,我對這個過程很陌生。在VBA Excel中搜索非數字值

此刻,我正在嘗試使用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

則IsNumeric是測試功能一個表達式,在幾秒鐘內找到答案! ;) – R3uK

回答

3

下面的代碼應該工作正常,請注意如何我已經使用則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 

而且你不需要所有的人選擇的,上述達到相同的結果

+0

感謝您的幫助! –

+0

對您的代碼做了輕微的優化 – 99moorem

1

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鍵打開幫助信息關於那個特定的功能! ;)

+0

感謝您的幫助! –

+0

如果這解決了您的問題,請接受回答以將您的問題標記爲已回答(在每個帖子的左上方的打開/關閉投票下打勾) – R3uK