Acos Funktion Excel VBA- Laufzeitfehler 1004

Hallo,
ich schreibe derzeit ein Auswertungsskript mit Hilfe von VBA in Excel 2010.
Das Skript soll folgendes tun: Daten aus Zellen einlesen, berechnen und wieder ausgeben.
Es handelt sich derzeit um ~39000 Zeilen.
Das Problem ist die acos-Funktion, diese rechnet 34 Zeilen lang erwiesenermaßen richtig (händische Rechnung), und steigt dann aus mit der Fehlermeldung " Laufzeitfehler 1004: Die Acos Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.

Per händischer Rechnung gibt es aber ein Ergebnis, einen mathematischen Fehler schließe ich daher aus.

Bereits versucht:

  • ActiveSheet definieren
  • with active sheet
  • Neustart

Jetzt gehen mir langsam die Ideen aus, vllt weiss jemand weiter??
Vielen Dank!!
Hier der Code:

Sub Schaltfläche2_Klicken()

'Tabellenblätter definieren
Set ls1 = ActiveWorkbook.Sheets(1)
Set ls2 = ActiveWorkbook.Sheets(2)
Set ls3 = ActiveWorkbook.Sheets(3)
Set ls4 = ActiveWorkbook.Sheets(4)
Set ls5 = ActiveWorkbook.Sheets(5)
Set ls6 = ActiveWorkbook.Sheets(6)
Set ls7 = ActiveWorkbook.Sheets(7)
Set aus = ActiveWorkbook.Sheets(8)

'Variablen definieren

Dim nmax As Integer: Dim Sx As Double: Dim Sxneu As Double: Dim ar As Variant
Dim br As Double: Dim A As Double: Dim B As Variant: Dim phi As Variant
Dim u1 As Double
Dim u2 As Double: Dim u3 As Double: Dim sigma1 As Double: Dim sigma2 As Double
Dim sigma3 As Double: Dim check As Double

anz = Worksheets(1).UsedRange.Rows.Count
anz1 = anz - 4
’ Auswertung des dreiachsigen Spannungszustandes

For p = 35 To anz1

sigmax = aus.Cells(2 + p, 2)
sigmay = aus.Cells(2 + p, 3)
sigmaz = aus.Cells(2 + p, 4)
tauxy = aus.Cells(2 + p, 5)
tauyz = aus.Cells(2 + p, 6)
tauxz = aus.Cells(2 + p, 7)

I1 = sigmax + sigmay + sigmaz 'Invariante 1

I2 = sigmax * sigmay + sigmay * sigmaz + sigmaz * sigmax _

  • tauxy ^ 2 - tauyz ^ 2 - tauxz ^ 2 'Invariante 2

I3 = sigmax * sigmay * sigmaz + 2 * tauxy * tauyz * tauxz - sigmax * tauyz ^ 2 _

  • sigmay * tauxz ^ 2 - sigmaz * tauxy ^ 2 'Invariante 3

'Koeffizientenvergleich
A = -I1
B = I2
C = -I3
aus.Cells(2 + p, 12) = A
aus.Cells(2 + p, 13) = B
'Reduzierte Form
ar = B - A ^ 2 / 3
aus.Cells(2 + p, 14) = ar
br = 2 / 27 * A ^ 3 - 1 / 3 * A * B + C
aus.Cells(2 + p, 15) = br
phi = Application.WorksheetFunction.Acos(-B / (2 * Sqr(-(ar / 3) ^ 3)))
u1 = 2 * Sqr(-ar / 3) * Cos(phi)
u2 = 2 * Sqr(-ar / 3) * Cos(phi + 2.0943951023932)
u3 = 2 * Sqr(-ar / 3) * Cos(phi + 2 * 2.0943951023932)

Grüezi EchoBravo

Hmmm, kannst Du vielleicht auch ein paar Daten liefern, am liebsten die Mappe selbst?

Und auch der vollständige Code wäre nicht schlecht, ich glaube da fehlt ein Teil am Ende.

Vielleicht hilft es, die Variablen am Beginn der Schleife jeweils zurück zu setzen?

Mit scheint, dass da irgend ein Stack voll läuft oder sowas ähnliches…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -