Не похоже, что было бы слишком сложно объединить разрозненные части в оператор Select Case, сохранив аналогичные части.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B:C")) Is Nothing Then
Cancel = True
Dim rFound As Range, vFind As Variant
'small bit of error control
if isempty(target) then exit sub
vFind = Target.value
On Error Resume Next
Select Case Target.Column
Case 2
With Sheet5.Columns(2)
Set rFound = .Find(What:=vFind, After:=.Cells(1, 1), _
LookIn:=xlValues, LookAt:=xlWhole)
End With
Case 3
With Sheet4.Columns(3)
Set rFound = .Find(What:=vFind, After:=.Cells(1, 1), _
LookIn:=xlValues, LookAt:=xlWhole)
End With
End Select
On Error GoTo 0
If Not rFound Is Nothing Then
Application.Goto rFound
Else
MsgBox "No match for " & vFind & " on " & _
iif(target.column = 3, Sheet4.Name, Sheet5.Name)
End If
End If
End Sub