Содержимое ячейки A1
=test(2)
где test
- это функция:
Function test(ByRef x As Double) As Double
Range("A2") = x
test = x * x
End Function
Можете ли вы объяснить, почему это дает # #VALUE!
в ячейке A1
и ничего в ячейке A2
? Я ожидал, что A2
будет содержать 2
а A1
будет содержать 4
. Без строки Range("A2") = x
функция работает как ожидалось (возводя в квадрат значение ячейки).
Что действительно сбивает с толку, так это если вы calltest
test
с подпрограммой calltest
тогда это calltest
Sub calltest()
t = test(2)
Range("A1") = t
End Sub
Function test(ByRef x As Double) As Double
Range("A2") = x
test = x * x
End Function
Но это не
Function test(ByRef x As Double) As Double
Range("A2") = x
End Function