Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Laufzeitfehler 1004: Conways Game of life |
15.12.2016 16:59:03 |
LBE |
|
|
|
15.12.2016 17:30:34 |
Gast65396 |
|
|
|
15.12.2016 17:55:11 |
Gast75581 |
|
|
|
15.12.2016 17:42:02 |
GraFri |
|
|
Von:
LBE |
Datum:
15.12.2016 16:59:03 |
Views:
1125 |
Rating:
|
Antwort:
|
Thema:
Laufzeitfehler 1004: Conways Game of life |
Moin Moin,
ich bin auf das "Game of Life" von Conway gestoßen und wollte dieses gerne in EXCEL mittels VBA nachbauen. Bisher habe ich den Code im Anhang geschrieben.
Mein derzeitiges Problem ist der Laufzeitfehler 1004. Wenn ich in der Sub ScreenCells die Funktion CountNeighbours aufrufe, bekomme ich diesen Fehler.
Ich kann leider nicht herausfinden woran dieses genau liegt. Wenn ich in der Sub ScreenCells der Variable intNeighbours einen Integer zuweise, dann funktioniert es wie es soll.
Was ist mein Fehler?
Danke vielmals!
VG
LBE
Option Explicit
Sub Life()
'Dim Test As Integer
'Test = CountNeighbours(Range("B4"))
'MsgBox (Test)
Call ScreenCells
End Sub
Function CountNeighbours(rZelle As Range) As Integer
Dim iCounter As Integer
iCounter = 0
If (rZelle.Offset(-1, -1).Interior.ColorIndex = 1) Then ' Nachbar oben links
iCounter = iCounter + 1
End If
If (rZelle.Offset(-1, 0).Interior.ColorIndex = 1) Then ' Nachbar oben
iCounter = iCounter + 1
End If
If (rZelle.Offset(-1, 1).Interior.ColorIndex = 1) Then ' Nachbar oben rechts
iCounter = iCounter + 1
End If
If (rZelle.Offset(0, -1).Interior.ColorIndex = 1) Then 'Nachbar links
iCounter = iCounter + 1
End If
If (rZelle.Offset(0, 1).Interior.ColorIndex = 1) Then 'Nachbar rechts
iCounter = iCounter + 1
End If
If (rZelle.Offset(1, 0).Interior.ColorIndex = 1) Then 'Nachbar unten links
iCounter = iCounter + 1
End If
If (rZelle.Offset(-1, -1).Interior.ColorIndex = 1) Then 'Nachbar unten
iCounter = iCounter + 1
End If
If (rZelle.Offset(-1, -1).Interior.ColorIndex = 1) Then 'Nachbar unten rechts
iCounter = iCounter + 1
End If
CountNeighbours = iCounter
End Function
Sub ScreenCells()
Dim Zelle As Object
Dim intNachbarn As Integer
For Each Zelle In Worksheets(1).Range("A1:Z22")
intNachbarn = CountNeighbours(Zelle)
' Lebende Zelle <2 oder >3 stirbt nächste Runde
If (((intNachbarn < 2) Or (intNachbarn > 3)) And (Zelle.Interior.ColorIndex = 1)) Then
Worksheets(2).Cells(Zelle.Row, Zelle.Column).Interior.ColorIndex = 2
End If
' Lebende Zelle lebt weiter bei Nachbarn =2 oder = 3
If (((intNachbarn = 2) Or (intNachbarn = 3)) And (Zelle.Interior.ColorIndex = 1)) Then
Worksheets(2).Cells(Zelle.Row, Zelle.Column).Interior.ColorIndex = 1
End If
' Tote Zelle werden bei Nachbarn = 3 naechste Gen lebendig
If (intNachbarn = 3 And Zelle.Interior.ColorIndex = 2) Then
Worksheets(2).Cells(Zelle.Row, Zelle.Column).Interior.ColorIndex = 1
End If
Next
End Sub
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Laufzeitfehler 1004: Conways Game of life |
15.12.2016 16:59:03 |
LBE |
|
|
|
15.12.2016 17:30:34 |
Gast65396 |
|
|
|
15.12.2016 17:55:11 |
Gast75581 |
|
|
|
15.12.2016 17:42:02 |
GraFri |
|
|