fork download
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2. Dim str As String
  3. Dim prms As Variant
  4. Dim subprms As Variant
  5. Dim sheet_name As String
  6. Dim rng_str As String
  7. Dim rng2_str As String
  8. Dim rng As Range
  9. Dim rng2 As Range
  10. Dim r As Range
  11. Dim ret As Boolean
  12. Dim pstr As String
  13. Dim find_str As String
  14. str = Target.Formula2
  15. ret = get_param(str, pstr)
  16. If ret = False Then Exit Sub
  17. prms = Split(pstr, ",")
  18. subprms = Split(prms(1), "!")
  19. sheet_name = subprms(0)
  20. rng_str = subprms(1)
  21. find_str = Range(prms(0))
  22. subprms = Split(prms(2), "!")
  23. rng2_str = subprms(1)
  24. With Worksheets(sheet_name)
  25. Set rng = .Range(rng_str)
  26. Set rng2 = .Range(rng2_str)
  27. For Each r In rng
  28. If find_str = r.Value Then
  29. .Activate
  30. .Cells(r.Row, rng2.Column).Select
  31. Exit Sub
  32. End If
  33. Next
  34. End With
  35. End Sub
  36.  
  37. Private Function get_param(ByVal str As String, ByRef param As String) As Boolean
  38. get_param = False
  39. param = ""
  40. Dim RE As Object
  41. Dim rematch As Object
  42. Set RE = CreateObject("VBScript.RegExp")
  43. RE.Pattern = "^=XLOOKUP\((.+)\)$"
  44. RE.Global = True
  45. RE.IgnoreCase = True
  46. Set rematch = RE.Execute(str)
  47. If rematch.Count < 1 Then Exit Function
  48. param = rematch(0).submatches(0)
  49. get_param = True
  50. End Function
  51.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty