返回列表 上一主題 發帖

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

回復 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

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題