Index außerhalb des gültigen Bereichs
19.08.2003 12:32:08
Alex Ickert
und habe Folgendes vor: Ich möchte die bereits in einer Excel-Tabelle berechneten Werte in VBA einlesen, und mit diesen dann in einer Schleife Berechnungen durchführen. Die Schleife soll stoppen wenn ein berechneter Wert kleiner ist als der eingelesene. Dann sollen die berechneten Werte aus VBA in der Excel-Tabelle ausgegeben werden.
Ich habe Folgendes versucht und bekommen die Meldung: Index außerhalb des gültigen Bereichs! Des weiteren könnte das Programm weitere schwere Fehler enthalten!
Sub Walzenvorschub()
Dim genau(15, 9) As Variant
Dim med(15, 9) As Variant
Dim mg(15, 9) As Variant
Dim mgeschw(15, 9) As Variant
Dim nm(15, 9) As Variant
Dim pi(15, 9) As Variant
Dim bm(15, 9) As Variant
Dim vw(15, 9) As Variant
Dim tb(15, 9) As Variant
Dim techdaten3(15, 9) As Variant
Dim techdaten2(15, 9) As Variant
Dim tg(15, 9) As Variant
Dim tk(15, 9) As Variant
Dim ts(15, 9) As Variant
Dim c0(15, 9) As Variant
Dim jg(15, 9) As Variant
Dim be(15, 9) As Variant
Workbooks("Servo2.xls").Activate
Worksheets("Tabelle1").Activate
genau(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(44, 6).Value
mg(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(28, 3).Value
mgeschw(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(24, 8).Value
nm(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(50, 3).Value
pi(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(21, 9).Value
bm(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(26, 8).Value
vw(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(23, 3).Value
c0(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(54, 6).Value
techdaten3(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(31, 8).Value
techdaten2(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(30, 8).Value
jg(15, 9) = Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(18, 7).Value
L50: tb(15, 9) = ((jg(15, 9) + techdaten2(15, 9)) * nm(15, 9) * pi(15, 9)) / (30 * bm(15, 9))
be(15, 9) = mgeschw(15, 9) / (tb(15, 9) * 60)
ts(15, 9) = (log((mgeschw(15, 9) * 100 / 3) / (c0(15, 9) ^ 2 * genau(15, 9) * tb(15, 9))) - 1) / c0(15, 9)
If (ts(15, 9) < 0.01) Then ts(15, 9) = 0.01
If (vw(15, 9) < 30) Then
tk(15, 9) = vw(15, 9)
Else
tk(15, 9) = (2 * tb(15, 9) + ts(15, 9)) * (360 / vw(15, 9) - 1)
End If
tg(15, 9) = 2 * tb(15, 9) + ts(15, 9) + tk(15, 9)
med(15, 9) = sqr(((bm(15, 9) + mg(15, 9)) ^ 2 * tb(15, 9) + (bm(15, 9) - mg(15, 9)) ^ 2 * (tb(15, 9) + ts(15, 9)) + mg(15, 9) ^ 2 * tk(15, 9)) / tg(15, 9))
If (techdaten3(15, 9) < med(15, 9) And bm(15, 9) > 10) Then
bm(15, 9) = bm(15, 9) - 1
GoTo L50
End If
If (techdaten3(15, 9) < med(15, 9) And bm(15, 9) > 0.1) Then
bm(15, 9) = bm(15, 9) - 0.1
GoTo L50
End If
Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(38, 11).Value = bm(15, 9)
Workbooks("Servo2.xls").Worksheets("Tabelle1").Cells(39, 11).Value = be(15, 9)
End Sub
Ich versuche das Programm auf den Server zu Laden unter dem Namen: Servo2.xls
Währe echt super wenn mir einer weiter Helfen könnte!
Danke im Vorraus!
Gruß Alex