192 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)

Hallo und guten Morgen,

ich stelle diese Frage nur, da ich nicht weiß was die Aussage bedeutet Bzw. was ich wo und wie verändern muss.

Es geht um die Rückenahme eines Wurfes bei meinem Dartspiel. 

Das wird angezeigt:

Sub Ruecknahme()

'Würfe reduzieren

If Cells(arrRueck(5), arrRueck(1)).Value > 0 Then Cells(arrRueck(5), arrRueck(1)).Value = Cells(arrRueck(5), arrRueck(1)).Value - 1

'Punktzahl im Gesamtergebis reduzieren

Cells(arrRueck(0), arrRueck(1)) = Cells(arrRueck(0), arrRueck(1)) - arrRueck(4)

'Punktzahl in Rundenübersicht reduzieren

Cells(arrRueck(2), arrRueck(3)) = Cells(arrRueck(2), arrRueck(3)) - arrRueck(4)

End Sub

Kann es an diesem Eintrag liegen?

'Daten für die Rücknahme des Wurfes in das Array schreiben
arrRueck(0) = lngSZeile                                            'Zeile für Eintrag des Wurfs
arrRueck(1) = lngWSpalte                                           'Spalte für Eintrag des Wurfs
arrRueck(2) = lngSpalte                                            'Spalte für Spieler
arrRueck(3) = lngWZeile                                            'Zeile für Ergebnis des Wurfs
arrRueck(4) = lngSpalte + Cells(lngSZeile, lngWSpalte).Value - 1   'Spalte für Ergebnis des Wurfes
arrRueck(5) = lngDT                                                'Doppel oder Triple

Gruß Adde

3 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi Adde,

Laufzeitfehler 1004 kann sehr vieles bedeuten. Was sagt denn der Debugger genau?

Mal geraten: arrRueck(5) ist mit einem Wert gefüllt der nicht als Zeilennummer interpretiert werden kann - z.B. 0.

Bis später, Karin
0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)

Hallo Karin,

das stimmt. Das ist ein Befehl, wenn man sich verdrückt hat soll das Ergebnis zurückgenommen werden. Es ist die gleiche Liste die schon einmal hochgeladen habe.

'Würfe reduzieren
If Cells(arrRueck(5), arrRueck(1)).Value > 0 Then Cells(arrRueck(5), arrRueck(1)).Value = Cells(arrRueck(5),

           arrRück(5)=0 arrrück(1)=0                                    arrRück(5)=0   arrRück(5)=0           arrRück(5)=0 

 arrRueck(1)).Value - 1
'Punktzahl im Gesamtergebis reduzieren
Cells(arrRueck(0), arrRueck(1)) = Cells(arrRueck(0), arrRueck(1)) - arrRueck(4)
'Punktzahl in Rundenübersicht reduzieren
Cells(arrRueck(2), arrRueck(3)) = Cells(arrRueck(2), arrRueck(3)) - arrRueck(4)

Bei dem ROT wird der Fehler angezeigt, Cells(arrRueck(2), arrRueck(3)) = <Anwendungs oder Objektbedefinierterfehler

End Sub

Hoffe du kannst damit etwas anfangen

Gruß Adde

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi Adde,

das ist jetzt aber eine andere Codezeile als in deinem Eröffnungsbeitrag...

Du musst prüfen, mit welchen Werten deine Array-Felder belegt sind und ob sie 1. eine korrekte Zelladresse (Zeile/Spalte) ergeben und wenn ja, ob 2. die betreffende Zelle einen numerischen Wert enthält - nur so kannst du feststellen, worin der Fehler liegt.

Bis später, Karin
...