Board logo

標題: 在範圍內尋找指定內容的位置 [打印本頁]

作者: enoch    時間: 2012-9-28 16:29     標題: 在範圍內尋找指定內容的位置

請問如何可以在指定儲存格範圍(例如在A1:D5),
找到指定內容(如 "TARGET" )的儲存格位置
請指教
作者: mark15jill    時間: 2012-9-28 16:39

回復 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
複製代碼

作者: enoch    時間: 2012-9-28 23:32

多謝指教, 始終要每行去找尋
作者: Hsieh    時間: 2012-9-29 00:52

回復 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
複製代碼

作者: stillfish00    時間: 2012-9-29 22:43

本帖最後由 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
複製代碼

作者: c_c_lai    時間: 2012-9-30 06:27

回復 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
複製代碼

作者: c_c_lai    時間: 2012-9-30 06:43

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

作者: c_c_lai    時間: 2012-9-30 08:14

回復 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
複製代碼
[attach]12637[/attach]




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