Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range(spalte & zeile ) ?

Forumthread: Range(spalte & zeile ) ?

Range(spalte & zeile ) ?
28.05.2002 09:06:28
dataderrick
Hi,
ich überlege mir schon die ganze Zeit, warum hier

Do While Worksheets("Tabelle1").Range(spalte & anfanga) = 0

eine Fehlermeldung kommt ?
Es muss doch möglich sein die Spalten hochzuzählen , auch mit range und nicht mit cells, oder ?

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Range(spalte & zeile ) ?
28.05.2002 10:17:22
Timo
Nicht mit Variablen, leider. Dafür musst du Cells benutzen. Was aber nicht weiter schlimm ist, da du ja auch folgendes machen kannst:

Range(Cells(1,1),Cells(2,2)).Select

Hiermit würdest du halt die Zellen A1:B2 auswählen.

Hoffe das hilft!

Gruss
TImo

Re: Range(spalte & zeile ) ?
28.05.2002 10:28:00
sven
Hi Timo, wenn es funktionieren würde, dann wäre das genial, aber ich weiss nicht, was ich falsch mache, es geht einfach nicht !!
Ich habe folgenden Quellcode :

Sub Vergleich()
'
' vergleich Makro
' Makro am 27.5.2002 von PC-User aufgezeichnet
'

'
Dim wert1, wert2 As String
Dim zelleninhalt
Dim anfangB
Dim anfanga
Dim spalte

spalte = 1

anfanga = 2
Do While Worksheets("Tabelle1").Cells(spalte, anfanga) = 0
anfanga = anfanga + 1
Loop

anfangB = 2
Do While Worksheets("Tabelle2").Cells(spalte, anfangB) = 0
anfangB = anfangB + 1
Loop

For spalte = 1 To 2

a = anfanga
i = anfangB
zelleninhalt = 1 / 10

Do While zelleninhalt > 0

wert1 = Worksheets("Tabelle1").Cells(spalte, a)

wert2 = Worksheets("Tabelle2").Cells(spalte, i)

If wert1 = wert2 Then

MsgBox "richtig"

Else: MsgBox "falsch"
Cells(spalte & i).Interior.ColorIndex = 4
End If
a = a + 1
MsgBox a & " a "
i = i + 1
MsgBox i & " i"
zelleninhalt = Worksheets("Tabelle2").Cells(spalte, i)

Loop
Next
End Sub

Mit diesem möchte ich die beiden Tabellen vergleichen und die unterschiede markieren.
Jedoch bekom ich nun eine Fehlermeldung bei der Do while Bedingung. Ich kann anscheinend bei Cell nicht die 0 so stehn lassen, jedoch ist dies erforderlich. Mit Range geht dies, jedoch kann ich dort nicht die Spalten hochzählen

Anzeige
Re: Range(spalte & zeile ) ?
28.05.2002 13:32:39
Timo
Schreib doch mal bei welcher Do Loop Schleife er die Fehlermeldung ausspuckt (Und welche!).

Was möchtest du denn mit folgender Zeile bezwecken?
Do While Worksheets("Tabelle1").Cells(spalte, anfanga) = 0

Soll das heissen, er soll das so lange wiederholen, bis nicht 0 in der Zelle steht? Dann müsste die Zeile so lauten:
Do While Worksheets("Tabelle1").Cells(spalte, anfanga).Value = 0

Gib mal ein paar mehr Infos bitte!
Timo

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Umgang mit Range und Cells in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Definiere Deine Variablen Beginne mit der Definition der Variablen, die Du benötigst. Zum Beispiel:

    Dim wert1 As String
    Dim wert2 As String
    Dim spalte As Integer
    Dim anfanga As Integer
  2. Setze den Startwert Wähle eine Startzeile und -spalte. Dies könnte so aussehen:

    spalte = 1
    anfanga = 2
  3. Nutze die Do While Schleife Verwende eine Do While Schleife, um durch die Zellen zu iterieren:

    Do While Worksheets("Tabelle1").Cells(spalte, anfanga).Value = 0
       anfanga = anfanga + 1
    Loop
  4. Vergleich der Zellen Vergleiche die Werte in den Zellen:

    If wert1 = wert2 Then
       MsgBox "richtig"
    Else
       MsgBox "falsch"
       Worksheets("Tabelle1").Cells(spalte, anfanga).Interior.ColorIndex = 4
    End If
  5. Zellen iterieren Erhöhe die Zeilen- oder Spaltennummer nach jedem Durchlauf:

    anfanga = anfanga + 1

Häufige Fehler und Lösungen

  • Fehlermeldung bei Range Wenn Du eine Fehlermeldung erhältst, wenn Du Range(spalte & anfanga) verwendest, könnte das daran liegen, dass Du die Zellen nicht korrekt referenzierst. Stattdessen solltest Du Cells(spalte, anfanga) verwenden.

  • Nullwerte in Zellen Wenn Du in einer Do While Schleife eine Zelle auf 0 überprüfst und eine Fehlermeldung bekommst, stelle sicher, dass Du .Value hinzufügst:

    Do While Worksheets("Tabelle1").Cells(spalte, anfanga).Value = 0

Alternative Methoden

Eine Alternative zu Range ist die Verwendung von Cells, wenn Du mit Variablen arbeitest. Zum Beispiel:

Range(Cells(1, 1), Cells(2, 2)).Select

Hiermit wählst Du einen Bereich von Zellen aus, der von der ersten bis zur zweiten Zeile und von der ersten bis zur zweiten Spalte reicht.


Praktische Beispiele

Hier ist ein einfaches Beispiel zur Verwendung von vba cells(zeile, spalte):

Sub Beispiel()
    Dim i As Integer
    For i = 1 To 10
        Worksheets("Tabelle1").Cells(i, 1).Value = i
    Next i
End Sub

Dieses Skript füllt die erste Spalte mit den Werten von 1 bis 10.


Tipps für Profis

  • Verwende Option Explicit Setze am Anfang Deines Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen.

  • Vermeide Magic Numbers Nutze Konstanten für Deine Zeilen- und Spaltenzahlen, um den Code lesbarer zu machen. Zum Beispiel:

    Const START_ROW As Integer = 2

FAQ: Häufige Fragen

1. Warum funktioniert Range(spalte & anfanga) nicht? Range kann nicht mit Variablen in dieser Form verwendet werden. Nutze stattdessen Cells(spalte, anfanga).

2. Wie kann ich eine ganze Spalte auswählen? Du kannst eine ganze Spalte mit folgendem Befehl auswählen:

Worksheets("Tabelle1").Columns(1).Select

3. Was ist der Unterschied zwischen Range und Cells? Range wird verwendet, um einen spezifischen Bereich von Zellen zu referenzieren, während Cells eine bestimmte Zelle basierend auf Zeilen- und Spaltennummer zurückgibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige