Problem Performance Eigene Function

12/11/2007 - 11:16 von northdrive | Report spam
Hallo,

ich habe in einer Excel Tabelle eine eigene Function implementiert. Dazu
habe ich in VB ein Eigenes Modul TabellenFunktionen hinzugefügt und in diesem
Modul die folgende Function implementiert

' Berechnet den Winkel aus einem gegebenen Involutwert
Public Function Ainvolut(inv As Double) As Double



'VariablenDeklarationen
Dim alphast As Double
Dim alpha0 As Double
Dim Delta As Double

' Fehlerbehandlung initialisieren
On Error GoTo ErrorHandler

' Bestimmung der Startwerte der Iteration
alphast = (3 * inv) ^ (1 / 3)
alpha0 = alphast
Delta = -((Tan(alphast)) ^ 2) ^ (1 / 2) + alphast + inv

' Iteration des Winkels bis Genauigkeit 1e-12
Do
alpha0 = Delta / (Tan(alpha0)) ^ 2 + alpha0
Delta = -((Tan(alpha0)) ^ 2) ^ (1 / 2) + alpha0 + inv

Loop Until (Abs(Delta) < 0.000000000001)

'Rückgabe des Ergebniswertes
Ainvolut = WorksheetFunction.Degrees(alpha0)
GoTo Ende

' FehlerBehandlung
ErrorHandler:
Ainvolut = "MyError"

Ende:


End Function

Seit ich diese Function in Exel benutze, kann ich mit dem Mausrad nicht mehr
scrollen, da das Fenster immer wieder den Focus zu verlieren scheint ??
Kann mir irgend jemand sagen was ich da falsch mache ??

vielen Dank

Christian
 

Lesen sie die antworten

#1 Eric March
12/11/2007 - 13:57 | Warnen spam
northdrive schrieb:
Hallo,

ich habe in einer Excel Tabelle eine eigene Function implementiert. Dazu
habe ich in VB ein Eigenes Modul TabellenFunktionen hinzugefügt und in diesem
Modul die folgende Function implementiert

' Berechnet den Winkel aus einem gegebenen Involutwert
Public Function Ainvolut(inv As Double) As Double



'VariablenDeklarationen
Dim alphast As Double
Dim alpha0 As Double
Dim Delta As Double

' Fehlerbehandlung initialisieren
On Error GoTo ErrorHandler

' Bestimmung der Startwerte der Iteration
alphast = (3 * inv) ^ (1 / 3)
alpha0 = alphast
Delta = -((Tan(alphast)) ^ 2) ^ (1 / 2) + alphast + inv

' Iteration des Winkels bis Genauigkeit 1e-12
Do
alpha0 = Delta / (Tan(alpha0)) ^ 2 + alpha0
Delta = -((Tan(alpha0)) ^ 2) ^ (1 / 2) + alpha0 + inv

Loop Until (Abs(Delta) < 0.000000000001)

'Rückgabe des Ergebniswertes
Ainvolut = WorksheetFunction.Degrees(alpha0)
GoTo Ende

' FehlerBehandlung
ErrorHandler:
Ainvolut = "MyError"

Ende:


End Function

Seit ich diese Function in Exel benutze, kann ich mit dem Mausrad nicht mehr
scrollen, da das Fenster immer wieder den Focus zu verlieren scheint ??
Kann mir irgend jemand sagen was ich da falsch mache ??



Den Focus verlieren..?! Aber Excel bleibt schön im Vordergrund?

Aus dem Bauch raus: Excel steht auf AutoBerechnen, die Function steckt
in genügend Zellen und bei der Genauigkeit kommt der Rechenknecht von
Excel gehörig ins Rotieren…

-((Tan(alpha0)) ^ 2) ^ (1 / 2)
Nanu? Ich erzeuge mit dem Tangens einen Wert den ich per Quadratur
positiv mache um (nach meiner Logik) aus einer negativierten Zahl die
(Quadrat)Wurzel zu ziehen?!? Und irgendwie muss ich da was verpennen
wenn ich aus was Quadriertem umgehen die Wurzel ziehe? (Ach ja, die
Schule ist schon zu lange her…))

Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
"Die Geschichte ist der beste Lehrmeister - mit den unaufmerksamsten
Schülern." Indira Gandhi

Ähnliche fragen