Hallo,
ich habe ein Problem. Ich habe einen Quellcode geschrieben, doch es funktioniert einfach nicht. Es wird immer wieder der Laufzeitfehler 13 angezeigt (fett markiert). Dort geht es lediglich um das Einlesen von mehreren Koordinaten. Kann mir jemand weiterhelfen?
Sub Schaltfläche2_KlickenSieAuf()
End Sub
Sub Boeschungswinkel()
Const partikelanzahl = 7000
Const startx = 4
Const starty = 4
Dim p(partikelanzahl, 6) As Double
Dim s(32, 5) As Double
Dim winkelsumme As Double
sektorbreite = 360 / 32
Pi = 3.14159265358979
For i = 0 To partikelanzahl - 1
p(i, 0) = Worksheets("partikel").Cells(i + starty, startx)
p(i, 1) = Worksheets("partikel").Cells(i + starty, startx + 1)
p(i, 2) = Worksheets("partikel").Cells(i + starty, startx + 2)
p(i, 4) = Math.Sqr(p(i, 0) ^ 2 + p(i, 1) ^ 2)
If (p(i, 0) > 0) Then
p(i, 5) = Math.Atn(p(i, 1) / p(i, 0))
Else
p(i, 5) = Math.Atn(p(i, 1) / p(i, 0)) + Pi
End If
p(i, 5) = p(i, 5) * 360 / 2 / Pi
If p(i, 5) < 0 Then
p(i, 5) = p(i, 5) + 360
End If
p(i, 6) = Int(p(i, 5) / sektorbreite)
sektornummer = p(i, 6)
If p(i, 2) > s(sektornummer, 0) Then
s(sektornummer, 0) = p(i, 2)
s(sektornummer, 1) = p(i, 4)
End If
If p(i, 4) > s(sektornummer, 3) Then
s(sektornummer, 2) = p(i, 2)
s(sektornummer, 3) = p(i, 4)
End If
Next
For i = 0 To 32 - 1
s(i, 0) = s(i, 0) - s(i, 2)
s(i, 3) = s(i, 3) - s(i, 1)
s(i, 1) = 0
s(i, 2) = 0
s(i, 5) = Math.Atn(s(i, 0) / s(i, 3))
s(i, 5) = s(i, 5) * 360 / 2 / Pi
winkelsumme = winkelsumme + s(i, 5)
Next
MsgBox (winkelsumme / 32)
End Sub
Vielen Dank
|