Написал функцию, которую хочу поместить в ячейку Excelя.
Public Function AauseByRef(ByVal r1 As Range, ByRef r2 As Range) As Long
MsgBox r1.row, vbOK, "My Info"
r2.Cells(r2.row, r2.Column).Value = r1.Cells(r1.row, r1.Column).Value / 2#
AauseByRef = r1.row
Exit Function
end function
Собственно, что именно делается в функции в данном случае неважно.
Вопрос: Как правильно передать в эту функцию произвольно выбранный мышкой на листе Range?
byRef?
byVal?
Public Function AauseByRef(ByRef r1 As Range,
Функцию задействую через строку ввода формул в ячейку (fx).
Появляется диалоговое окно, приглашающее ввести значения параметров, щёлкаю по маленькой иконке справа от строки ввода параметров и выбираю мышкой диапазон на листе. Аналогично со вторым параметром. Но ничего не работает.
Такое впечатление, что тип параметров указан неправильно. Но в строке формул выглядит вполне изящно: AauseByRef(C4:C33, F5:F14).
Однако, MsgBox в функции показывает чушь, причём, несколько раз показывается.
Как решить проблему?
Здесь:
r2.Cells(r2.row, r2.Column).Value = r1.Cells(r1.row, r1.Column).Value / 2#
зачем вы используете символ # после 2?
Создайте функцию, чтобы я мог у себя запустить и понять, почему не работает.
Т.е. не просто что-то запишите в функцию, а чтобы функция делала какое-нибудь действие.