Legen Sie eine Zelle Wert aus einer Funktion

Den Inhalt der Zelle A1 ist =test(2) wo test ist die Funktion:

Function test(ByRef x As Double) As Double
  Range("A2") = x
  test = x * x
End Function

Können Sie erklären, warum diese gibt #VALUE! in Zelle A1 und nichts in der Zelle A2? Ich erwartete A2 enthalten 2 und A1 enthalten 4. Ohne die Linie Range("A2") = x die Funktion wie erwartet funktioniert (Quadratur der Wert einer Zelle).

Was ist wirklich verwirrend ist, wenn Sie wickeln test mit dem Unterprogramm calltest dann funktioniert es:

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

Aber nicht

Function test(ByRef x As Double) As Double
  Range("A2") = x
End Function
Wie im stackoverflow.com/questions/8520732/... ist es eigentlich möglich, eine UDF-Datei zu ändern, eine andere Zelle, aber es ist hässlich.

InformationsquelleAutor Chris Seymour | 2013-03-27

Schreibe einen Kommentar