Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler beim Vergleich von zwei Ranges

Fehler beim Vergleich von zwei Ranges
02.12.2004 10:34:38
zwei
Hi, ich hoffe, Ihr könnt mir helfen!
Ich benötige eine Funktion ähnlich der beim Spiel "Minesweeper", die automatisch alle benachbarten Felder aufdeckt, wenn an das betreffende Feld keine Mine grenzt. Sofern an das benachbarte Feld ebenfalls keine Mine grenzt, werden wiederum alle benachbarten Felder aufgedeckt usw. Also rekursiv. Damit durch die Offsets allerdings keine Endlosschleife entsteht, übergebe ich der Funktion auch noch die Ursprungszelle als Bedingung mit.
hier der Code:
Public

Sub OpenCell(ByVal Cell As Range, ByVal Origin As Range)
Dim i As Integer, j As Integer
Cell.Font.Color = RGB(0, 255, 0)
If Intersect(Cell, Range("B2:K11")) Is Nothing Then
ElseIf Cell.Value = 0 Then
For i = -1 To 1
For j = -1 To 1
If i = 0 And j = 0 Then
Else
If Cell.Offset(i, j) Is Not Origin Then        '*
Call OpenCell(Cell.Offset(i, j), Cell)
End If
End If
Next j
Next i
End If
End Sub

* Hier gibt's einen Fehler (Laufzeitfehler 424: Objekt erforderlich.). Es soll geprüft werden, ob die Zelle, die in dem Offset abgefragt wird, gleich der Zelle ist, von wo aus die aktuelle Zelle der Offset war (ich hoffe, ich drücke mich einigermaßen verständlich aus). Wenn das so ist, soll für diese Zelle die Funktion nicht nochmal aufgerufen werden.
Wäre schön, wenn Ihr Vorschläge zur Lösung des Problems hättet.
Vielen Dank schonmal.
Gruß Mario

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Vergleich von zwei Ranges
02.12.2004 13:33:09
zwei
Hi Mario,
mit dem Thems steh ich auch total auf Kriegsfuß, deswegen hab ich mal gebastelt.
Entscheiden ist, dass cell.offset(i,j) offensichtlich kein Rangeobject ist.
Deswegen geht der Vergleich nicht:
Schreib stattdessen
if Range(Cells(i, j).Address(0)) Origin then
und gib mal laut, ob es funzt.
Wie gesagt, mit Rangevariablen hab ich so meine Probleme.
Gruß
Volker
AW: Fehler beim Vergleich von zwei Ranges
02.12.2004 13:52:43
zwei
Hm, funzt leider auch nicht. Anwendungs- oder objektdefinierter Fehler. Trotzdem Danke! Hab sowieso noch einen Logikfehler gefunden, bei meiner Vorgehensweise kann es nämlich trotzdem noch zu Endlosrekursion kommen.
Hab mich gerade eine Runde über falsche Rückgabetypen geärgert, bis ich dann auf die Lösung gekommen bin. Excel stört sich an dem "Is Not" und will lieber "" haben. Was solche Sprachelemente in einer Programmiersprache zu suchen haben, frage ich mich sowieso schon lange... Wenn überhaupt, soll Microsoft einen Compiler entwickeln, der ganze Sätze versteht ;-)
Anzeige
AW: Fehler beim Vergleich von zwei Ranges
zwei
Hallo nochmal,
komisch, bei mir gings.
Ich hab jetzt nicht ganz kapiert, ob es nun mit "" funzt ,oder nicht.
Wie sieht die Zeile bei Dir denn jetzt aus?
Gruß
Volker
AW: Fehler beim Vergleich von zwei Ranges
zwei
If Cell.Offset(i, j) Origin Then
so geht es jetzt, aber leider hat sich die ganze logik als nicht praktikabel erwiesen, deshalb brauche ich die zeile garnicht mehr :)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige