返回列表 上一主題 發帖

在範圍內尋找指定內容的位置

在範圍內尋找指定內容的位置

請問如何可以在指定儲存格範圍(例如在A1:D5),
找到指定內容(如 "TARGET" )的儲存格位置
請指教

回復 1# enoch
  1. Sub sh()
  2.     For ghps = 1 To 5
  3.         For gg = 1 To 4
  4.             If Cells(ghps, gg) = "TARGET" Then
  5.                 Cells(ghps, 11) = "Y=" & ghps & "X=" & gg
  6.             End If
  7.         Next gg
  8.     Next ghps
  9. End Sub
複製代碼

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

多謝指教, 始終要每行去找尋

TOP

回復 3# enoch
  1. Sub ex()
  2. If Application.CountIf(Range("A1:D5"), "TARGET") > 0 Then
  3. Range("A1:D5").Replace "TARGET", "=1/0", xlWhole
  4. Set A = Range("A1:D5").SpecialCells(xlCellTypeFormulas, 16)
  5. MsgBox A.Address
  6. A.Value = "TARGET"
  7. End If
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 stillfish00 於 2012-9-29 22:44 編輯
  1. Dim A As Range
  2. With Range("A1:D5")
  3.     Set A = .Find(what:="TARGET", After:=.Cells(1, 1))
  4. End With
  5. MsgBox A.Address
複製代碼

TOP

回復 1# enoch
試試這個,這是我常使用的功能函式。
  1. Function getTarget(sh As String, rng As String, fnd As Variant) As String
  2.       Dim c As Range
  3.    
  4.      Set c = Sheets(sh).Range(rng).Find(fnd, LookIn:=xlValues, LookAt:=xlWhole)
  5.      If Not c Is Nothing Then
  6.             getTarget = c.Address
  7.      End If
  8. End Function
複製代碼

TOP

回復 1# enoch
我忘了附上範例。
  1. Sub Test()
  2.     Dim adr As String
  3.    
  4.     adr = getTarget("工作表1", "A1:D5", "TARGET")
  5.     MsgBox adr
  6. End Sub
複製代碼

TOP

回復 1# enoch
實務上,極有可能會需要去取得(或找到) "標的" 右邊的值,
你也可以使用此功能涵式達到目的。
  1. Sub Test()
  2.     Dim adr As String
  3.    
  4.     adr = getTarget("工作表1", "A1:D5", "TARGET")
  5.     MsgBox adr
  6.     adr = getTarget("工作表1", "A1:D5", "TARGET", False)
  7.     MsgBox adr
  8.     [A6] = Range(adr).Value
  9. End Sub

  10. Function getTarget(sh As String, rng As String, fnd As Variant, Optional curr As Boolean = True) As String
  11.     Dim c As Range
  12.    
  13.     Set c = Sheets(sh).Range(rng).Find(fnd, LookIn:=xlValues, LookAt:=xlWhole)
  14.     If Not c Is Nothing Then
  15.         getTarget = IIf(curr, c.Address, c.Offset(, 1).Address)
  16.     End If
  17. End Function
複製代碼

TOP

        靜思自在 : 時時好心就是時時好日。
返回列表 上一主題