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

Umwandeln von Range

Forumthread: Umwandeln von Range

Umwandeln von Range
07.08.2002 09:22:14
Sinnlos (Stefan)
Hallo,

wie kann ich Datentypen umwandeln? Und kann ich auch eine Variable vom Datentyp Range in Integer oder Double umwandeln?

Andere gehen ja mit Variable2 = CDbl(Variable1) z.B., aber bei range bekomme ich da irgendwie ne Fehlermeldung von wegen Typen unverträglich?!

Vielen Dank für eure Hilfe!!!

cya @ll or not ... Sinnlos (Stefan)

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Umwandeln von Range
07.08.2002 09:53:17
Micha
hi,

vb castet (=wandelt die typen) fast immer automatisch.
range-objekt ist eigentlich ein bereich, d.h. eine oder mehrere zellen, wie sollte sich das in eine zahl umwandeln lassen?
wenn du sonst sagst: blabla.range(bla) = "bla" oder ...= 48,
dann erkennt vba automatisch, dass du einen string oder eine zahl zuweisen willst und weist dies nicht an die zelle (range-objekt) zu, sondern verwendet deren eigenschaften range.value oder range.text.
also wenn du, was ich eher vermute, den inhalt einer zelle (bzw. eines range-objekts) casten willst, greife über value zu:
variable = CDbl(range(bla).value)
mfg

Anzeige
Re: Umwandeln von Range
07.08.2002 10:12:01
Sinnlos (Stefan)
Hallo,

vielen Dank erstmal für deine Hilfe!

Aber ich glaube du hast mich falsch verstanden, denn mit einer Funktion suche ich nach einem Wort in einer Spatenreihe und weise diesen Wert dann einer Variablen mit dem Datentyp Range zu. Dann suche ich noch nach einem zweiten Wort und speichere dann wieder in einer Variablen mit dem Datentyp Range die Zahl der Zelle. Jetzt möchte ich mit Hilfe der Count-Eigenschaft die Zellen zwischen diesen beiden Zellen speichern, bzw. mit der delete Eigenschaft löschen.
Wahrscheinlich habe ich beim ersten mal mein Problem nicht genau genug beschrieben, ich hoffe jetzt ist es deutlicher und du oder jemand anders kann mir Hilfe bieten. Vieln Dank dafür im voraus!!

cya @ll or not ... Sinnlos (Stefan)

Anzeige
Re: Umwandeln von Range
07.08.2002 11:25:49
Micha
hi,

also, ich hoffe ich habs jetzt verstanden.
du suchts ein wort und speicherst den ort bzw. die zelle (nicht das wort) als range1 ab, und nochmal als range2.
ich nehme an beide zellen sind in der selben spalte.
jetzt würde ich einfach die row-eigenschaft eines range-objekts verwenden, was mir jeweils die zeile liefert:
zellen_dazwischen = range2.row - range1.row
bzw. noch -1 wenn du wirklich die dazwischenliegende zellenanzahl willst.

mfg

Anzeige
Re: Umwandeln von Range
07.08.2002 12:06:02
Sinnlos (Stefan)
Hallo Micha,

vielen vielen Dank!!

Eigentlich total einfach wenn Mensch weiß wie es geht!

cya @ll or not ... Sinnlos (Stefan)

;
Anzeige

Infobox / Tutorial

Umwandeln von Range in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Zuweisen einer Range-Variable: Zuerst musst du eine Range-Variable definieren. Dies geschieht in der Regel so:

    Dim myRange As Range
    Set myRange = Range("A1:A10") ' Beispiel für einen Zellbereich
  2. Zugriff auf den Wert: Um den Wert einer Zelle innerhalb des Range-Objekts zu erhalten, verwende die .Value-Eigenschaft:

    Dim cellValue As Double
    cellValue = CDbl(myRange.Cells(1, 1).Value) ' Konvertiert den Wert der ersten Zelle in Double
  3. Umwandlung von Range in einen Wert: Wenn du mit einer Range-Variable arbeitest und den Wert in einen anderen Datentyp umwandeln möchtest, kannst du die CDbl-Funktion verwenden:

    Dim myValue As Double
    myValue = CDbl(myRange.Value) ' Umwandlung in Double

Häufige Fehler und Lösungen

  • Typen unverträglich: Ein häufig auftretender Fehler ist, wenn du versuchst, einen Range direkt in einen Integer oder Double umzuwandeln. Stelle sicher, dass du .Value verwendest, wie hier gezeigt:

    Dim myValue As Double
    myValue = CDbl(myRange.Value) ' Korrekte Umwandlung
  • Fehler bei der Zuweisung von Werten: Wenn du einen Wert in ein Range-Objekt zuweisen möchtest, achte darauf, die .Value-Eigenschaft zu verwenden:

    myRange.Value = 48 ' Setzt den Wert in den Range

Alternative Methoden

  • Verwendung von Range.Value2: Eine weitere Methode zur Umwandlung von Werten ist die Verwendung von Range.Value2, die keine Formatierung berücksichtigt:

    Dim myValue As Variant
    myValue = myRange.Value2 ' Schneller Zugriff auf den Wert
  • Direkter Zugriff auf Zellen: Wenn du nur auf einen einzelnen Wert zugreifen möchtest, kannst du dies direkt tun:

    Dim singleValue As Double
    singleValue = CDbl(Range("A1").Value) ' Zugriff auf den Wert in Zelle A1

Praktische Beispiele

  1. Zählen der Zellen zwischen zwei Range-Objekten: Wenn du den Abstand zwischen zwei Zellen ermitteln möchtest:

    Dim range1 As Range
    Dim range2 As Range
    Set range1 = Range("A1") ' Erste Zelle
    Set range2 = Range("A10") ' Zweite Zelle
    Dim zellenDazwischen As Long
    zellenDazwischen = range2.Row - range1.Row - 1 ' Zellen dazwischen zählen
  2. Löschen von Zellen in einem Range: Wenn du Zellen zwischen zwei bestimmten Zellen löschen möchtest:

    Range(range1.Offset(1, 0), range2.Offset(-1, 0)).Delete ' Löscht Zellen zwischen range1 und range2

Tipps für Profis

  • Verwende Option Explicit: Aktiviere diese Option am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden, was häufige Fehler vermeidet.

  • Nutze Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler abzufangen, besonders bei der Arbeit mit Range-Objekten.

  • Performance-Optimierung: Reduziere die Anzahl der Interaktionen mit dem Excel-Arbeitsblatt, indem du Werte in Arrays speicherst und dann auf einmal zurückschreibst.


FAQ: Häufige Fragen

1. Wie kann ich einen Wert aus einer Range in eine Variable umwandeln?
Du kannst die .Value-Eigenschaft verwenden und dann die CDbl-Funktion, um den Wert in einen Double-Typ zu konvertieren:

Dim myValue As Double
myValue = CDbl(Range("A1").Value)

2. Was passiert, wenn mein Range mehrere Zellen umfasst?
Wenn der Range mehrere Zellen umfasst, musst du entscheiden, wie du den Wert verarbeiten möchtest. Du kannst entweder den Wert einer spezifischen Zelle abrufen oder eine Schleife verwenden, um alle Zellen zu durchlaufen.

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