У меня есть две очень похожие функции, которые работали до того, как я переключил свой код на Option Explicit для отладки пупок (успех!). С тех пор функция Max
не работает, и я не могу объяснить причину и решить ее как xl vba perfect noob.Excel VBA - функция min max диапазона
Функция Max (не работает):
Function MaxAddress(The_Range) As Variant ' See http://support.microsoft.com/kb/139574 Dim MaxNum As Variant Dim cell As Range ' Sets variable equal to maximum value in the input range. MaxNum = Application.Max(The_Range) ' Loop to check each cell in the input range to see if equals the ' MaxNum variable. For Each cell In The_Range If cell.Value = MaxNum Then ' If the cell value equals the MaxNum variable it ' returns the address to the function and exits the loop. MaxAddress = cell.Address Exit For End If Next cell End Function
Ошибка выполнения:
я получаю "ошибка 91" в режиме исполнения, с Xmax valuing: "Nothing" Ошибка 91 означает: undefined object или With block variable
В мин функции (работы)
Function MinAddress(The_Range) As Variant ' See http://support.microsoft.com/kb/139574 Dim MinNum As Variant Dim cell As Range ' Sets variable equal to maximum value in the input range. MinNum = Application.Min(The_Range) ' Loop to check each cell in the input range to see if equals the ' MaxNum variable. For Each cell In The_Range If cell.Value = MinNum Then ' If the cell value equals the MaxNum variable it ' returns the address to the function and exits the loop. MinAddress = cell.Address Exit For End If Next cell End Function
Как назвать обе функции:
Set rng = ws_source.Range("3:3")
X_min = MinAddress(rng)
X_max = MaxAddress(rng) ' returns : X_max = Nothing
Данные находятся в строке 3, содержащий отформатированные номера и текста ,
Я не могу воспроизвести эту ошибку – Horaciux
Уверен, что это выглядит сложной задачей. – hornetbzz
Если вы получаете X_max как Nothing, то X_max является переменной объекта, которая не подходит. Используйте 'Dim X_max as String' – Rory