Седловой точкой в матрице называется элемент, являющийся одновременно наибольшим в столбце и наименьшим в строке. Седловых точек может быть и несколько (в этом случае они имеют равные значения).
Option Base 1
Sub mtrx()
Dim R As Long, C As Long
Dim MyRange As Range
Set MyRange = Selection
R = MyRange.Rows.Count
C = MyRange.Columns.Count
Dim isFind 'нашли точку
isFind = False 'пока нет
' Находим седловые точки
For i = 1 To R ' цикл по строкам
' найдем максимум в строке
maxstr = MyRange.Cells(i, 1)
For counter = 2 To R
If MyRange.Cells(i, counter) > maxstr Then
maxstr = MyRange.Cells(i, counter)
End If
Next counter
' теперь проверим для всех значений =maxstr, являются ли они
' минимумом в своем столбце
For j = 1 To C
If MyRange.Cells(i, j) = maxstr Then
imin = 1
For counter = 1 To R
If MyRange.Cells(counter, j) < MyRange.Cells(i, j) Then ' Есть меньший элемент
imin = 0
End If
Next counter
' Если элемент минимален в столбце - то это седловая точка
If imin = 1 Then
MsgBox "Седловая точка (" & i & "," & j & ")=" & MyRange.Cells(i, j)
isFind = True
End If
End If
Next j
Next i
If Not isFind Then MsgBox "Седловой точки нет."
End Sub