Board logo

標題: Range("a:a").Find(5)精準的用法 [打印本頁]

作者: openpc    時間: 2012-3-5 15:28     標題: Range("a:a").Find(5)精準的用法

請教先進
A1儲存格的值是空白
A2儲存格的值是空白
A3儲存格的值是 56
A4儲存格的值是 5

使用指令
Set rng = Range("a:a").Find(5)
MsgBox rng.Row

結果是3     ===>我要的結果是4

請教如何能精準的找到5而不56? 感謝!
作者: oobird    時間: 2012-3-5 15:45

MsgBox [a:a].Find(5, , , 1).Row
作者: openpc    時間: 2012-3-5 16:23

感恩 ,
再請教如果想要, 在[a:a]搜尋5, [b:b]搜尋6, [c:c]搜尋7, 而且結果必須在一列, 請教如何用Find的指令寫法,速度會比較快,   還是oobird先進有Find其他相關用法能一併賜教, 讓我能多多充實vba功力, 感謝!
作者: register313    時間: 2012-3-5 16:54

  1. Sub FIND()
  2. For i = 1 To 3
  3.   c = 1
  4.   Columns(i + 4) = ""
  5.   Set rng = Columns(i).FIND(i + 4, , , xlWhole)
  6.   If Not rng Is Nothing Then
  7.      findrow = rng.Row
  8.      Do
  9.        Cells(c, i + 4) = rng.Row
  10.        c = c + 1
  11.        Set rng = Columns(i).FindNext(rng)
  12.      Loop While Not rng Is Nothing And rng.Row <> findrow
  13.   End If
  14. Next i
  15. End Sub
複製代碼
回復 3# openpc
作者: smooth131    時間: 2012-3-6 00:17

I think.....
  1. Cells.Find(what:="56", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
複製代碼

作者: openpc    時間: 2012-3-6 11:48

感謝先進們指教,  仍在積極演練消化中.
作者: oobird    時間: 2012-3-6 13:36

find方法在vba中使用相當廣泛
建議多練習:
1.find工作表上某值出現的位置
2.find工作表上公式帶出某值的位置
3.find工作表上設定某格式的位置,如填滿色彩或粗體文字
4.find工作表上設定合併儲存格的位置




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)