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

Forumthread: cells(x,y).value

cells(x,y).value
Jonas
Hallo zusammen,
habe folgendes Problem:
Option Explicit
Dim x, y, o, p As Integer
Dim zei, spa As Integer
Dim i, erg, anz As Double
For spa = x To y Step 1
For zei = 0 To p Step 1
i = Cells(zei, spa).Value
If i >= w Then erg = erg + i
If i >= w Then anz = anz + 1
Next zei
Next spa
Bei der Zuweisung von i gleich zellwert bekomm ich eine Errormeldung.
Vielen Dank schon mal im Vorraus.
Jonas
Anzeige
warum neuer Beitrag?
19.06.2012 16:57:34
robert
Hi,
bleib doch in Deinem Beitrag, stelle die Frage auf "Offen"
-so macht man das, nicht zig mal anfragen.
Gruß
robert
AW: warum neuer Beitrag?
21.06.2012 08:51:50
Jonas
Hi robert,
das war einem Versehen geschuldet.....
Entschuldige bitte
Gruß Jonas
... und außerdem deklarierst Du w nicht (kwT)
19.06.2012 17:02:20
Matthias
Anzeige
ich glaub Step 1 ist auch nicht nötig ... owT
19.06.2012 21:11:48
Matthias
Warum glaube? Step 1 ist nie nötig, es sei ...
20.06.2012 00:59:02
Luc:-?
…denn, statt 1 steht da 'ne Variable, die auch mal =1 sein kann, Matthias. ;-)
AW: cells(x,y).value
19.06.2012 17:06:50
Ingo
hallo Jonas,
Du lässt die Variable zei von 0 bis p laufen, es gibt aber keine Zeile 0
mfG
Ingo christiansen
Anzeige
Bemerkungen und Vorschläge
19.06.2012 17:55:23
Erich
Hi Jonas,
einige Bemerkungen zu deinem Code-Fragment:
Wenn du schreibst: Dim x, y, o, p As Integer
dann werden keineswegs alle vor "As Integer" genannten Variablen als Integer deklariert,
sondern nur die letzte, also p.
Die Variablen davor sind als Variant deklariert, weil ohne Typangabe.
Bei "Option Explicit" sollte VBA die fehlende Deklaration von w angemeckert haben.
Zeilen- und Spaltennummern sollte man als Long deklarieren, so dass du schreiben solltest:
Dim x As Long, y As Long, o, p As Long
(o wird nicht gebraucht, der passende Typ ist also unbekannt.)
Wie sollte "i = Cells(zei, spa).Value" fehlerfrei sein können, wenn zei=0 ist? Es gibt keine Zeile 0!
Aus deinem Code ist nicht ersichtlich, welche Werte die Variablen x, y, p und w haben - ich habe sie gesetzt.
Schyau dir mal diesen Code an:

Sub jonas()
Dim x As Long, y As Long, o, p As Long
Dim zei As Long, spa As Long
Dim i As Double, erg As Double, anz As Double
Dim w As Double
x = 2
y = 3
p = 4
w = 3.2
For spa = x To y Step 1
For zei = 1 To p Step 1
i = Cells(zei, spa).Value
If i >= w Then erg = erg + i
If i >= w Then anz = anz + 1
Next zei
Next spa
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Bemerkungen und Vorschläge
21.06.2012 08:46:34
Jonas
Hallo Erich,
erst mal danke für den Tipp mit der Variablendeklaration, das war mir bisher unbekannt.
Ich muss mich außerdem für das lückenhafte Code-fragment entschuldigen.
Ich habe meinen Code nochmal überarbeitet und er funktioniert jetzt.
Der Grund war wie du sagtest der ungültige Zellbezug (wert 0).
Vielen Dank für die Hilfe
Jonas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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 cells(x,y).value in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Wert einer bestimmten Zelle in Excel VBA zu erhalten, kannst du die Cells-Methode verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Deklariere die Variablen: Stelle sicher, dass du die Variablen für Zeilen und Spalten korrekt deklarierst. Nutze Long für Zeilen- und Spaltennummern.

    Dim x As Long, y As Long, zei As Long, spa As Long
  2. Setze die Werte: Weise den Variablen x und y die gewünschten Spalten zu, zum Beispiel:

    x = 2
    y = 3
  3. Schleife durch die Zellen: Verwende eine Schleife, um durch die Zellen zu iterieren:

    For spa = x To y
       ' Hier kannst du den Wert der Zelle abfragen
       Debug.Print Cells(1, spa).Value
    Next spa
  4. Verwende Cells.Value: Um den Wert einer Zelle zu speichern, kannst du Cells(x, y).Value nutzen.


Häufige Fehler und Lösungen

Bei der Arbeit mit vba cells(x,y) können verschiedene Fehler auftreten:

  • Fehler bei Zeilen 0: Wenn die Schleife For zei = 0 To p verwendet wird, kann dies einen Fehler erzeugen, da Excel keine Zeile 0 hat. Ändere dies in For zei = 1 To p.

  • Falsche Variablendeklaration: Achte darauf, dass alle Variablen korrekt deklariert sind. Wenn du schreibst Dim x, y, o, p As Integer, wird nur p als Integer deklariert. Verwende:

    Dim x As Long, y As Long, o As Variant, p As Long
  • Nicht deklarierte Variablen: Wenn du w verwendest, ohne sie vorher zu deklarieren, wird ein Fehler ausgegeben. Stelle sicher, dass alle Variablen deklariert sind.


Alternative Methoden

Es gibt verschiedene Methoden, um den Wert einer Zelle zu erhalten:

  • Direkte Referenzierung: Anstatt Cells(x, y).Value zu verwenden, kannst du auch:

    Range("B2").Value

    verwenden, um den Wert direkt zu erfassen.

  • Verwendung von With-Anweisung: Dies kann den Code lesbarer machen:

    With Cells(1, 2)
      Debug.Print .Value
    End With

Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, excel vba cells(x,y).value effektiv zu nutzen:

  1. Summe der Werte in einem Bereich:

    Dim summe As Double
    For spa = 2 To 4
       summe = summe + Cells(1, spa).Value
    Next spa
    Debug.Print "Summe: " & summe
  2. Zählen, wie viele Zellen einen bestimmten Wert überschreiten:

    Dim anz As Long
    For spa = 2 To 4
       If Cells(1, spa).Value >= 3.2 Then anz = anz + 1
    Next spa
    Debug.Print "Anzahl: " & anz

Tipps für Profis

  • Verwendung von Option Explicit: Aktiviere Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Verwende Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu behandeln:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Lesbarkeit verbessern: Nutze Kommentare und formatierte Code-Abschnitte, um deinen Code übersichtlicher zu gestalten.


FAQ: Häufige Fragen

1. Warum erhalte ich eine Fehlermeldung bei Cells(0, spa).Value? Die Zeilen-Nummerierung in Excel beginnt bei 1. Stelle sicher, dass du keine Zeile 0 verwendest.

2. Wie kann ich sicherstellen, dass alle Variablen korrekt deklariert sind? Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden müssen.

3. Kann ich Cells auch in Funktionen verwenden? Ja, du kannst Cells in Funktionen verwenden, um Werte zu manipulieren und zurückzugeben.

4. Was ist der Unterschied zwischen Cells(x,y).Value und Cells(x,y).Formula? Cells(x,y).Value gibt den aktuellen Wert der Zelle zurück, während Cells(x,y).Formula die Formel zurückgibt, die in der Zelle gespeichert ist.

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