Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TabOrder As Variant, X As Variant
Dim addr As String
Dim rg As Range, targ As Range
If TabOrderFlag = True Then Exit Sub
TabOrder=Array("A1", "B5", "C10", "B12")
For Each X In TabOrder
If rg Is Nothing Then
Set rg = Range(X)
Else
Set rg = Union(rg, Range(X))
End If
Next
Set targ = Intersect(rg, Target)
rg.Select
If targ Is Nothing Then
addr = Target.Cells(1, 1).Address(ColumnAbsolute:=False, RowAbsolute:=False)
X = Application.Match(addr, TabOrder, 0)
If IsError(X) Then Range(TabOrder(LBound(TabOrder))).Activate
Else
targ.Activate
End If
End Sub
Public TabOrderFlag As Boolean
Sub TabOrderMode()
TabOrderFlag = Not TabOrderFlag
End Sub
|