BioaSharky
Super-Moderator
Teammitglied
- Dabei seit
- 25.01.1999
- Beiträge
- 18.511
- Reaktionspunkte
- 9
Hi,
Habe, um die Spalten eines Excel Datenblattes einzulesen, 'ne kleine For/Next-Schleife gemacht, welche logischerweise bei "besetzten" Zellen wunderbar funktioniert, jedoch bei Leeren Zellen zu "Typen unverträglich" führt.
Wie ersichtlich wird in den Spalten 4 und 14 von Zeile 4 bis 53 eingelesen, dabei enthält aber nur jede 2. Zeile einen Wert, was sich ja aber mal ändern könnte.
Oben genannter Code ist meine unelegante Lösung, das eigentliche Problem zu umgehen und in der inneren For/Next die Sprungweite 2 (Step 2) zu wählen.
Dies ist mir zu unflexibel, denn ich möchte jede Zeile auslesen --> mein singlevektor bietet ja auch 100 Werten Platz.
Nun hab ich mal in der Hilfe gestöbert und mit dem üblichen NULL hantiert bzw. Empty, jedoch brachte keines von beidem einen Typen-Verträglichkeit mit meinem Datentyp Single, den ich brauch, da er mir bei passender Genauigkeit wunderbar als Rechengrundlage dient.
Wie kann ich nun einer Zelle, die "nicht besetzt" (leer) ist in meinem singlevektor den Wert 0 zuweisen.
Wie gesagt Versuche mit If/then Vorschaltung und Abfrage der Zellen auf Null/Empty wurde probiert.
Bitte um zahlreiche Vorschläge.
Danke
BS
Habe, um die Spalten eines Excel Datenblattes einzulesen, 'ne kleine For/Next-Schleife gemacht, welche logischerweise bei "besetzten" Zellen wunderbar funktioniert, jedoch bei Leeren Zellen zu "Typen unverträglich" führt.
Code:
'Globale Datentypen
Public Type singlevektor
v(1 To 100) As Single
End Type
'Globale Daten
Public Wendigkeitslauf_Vorgaben As singlevektor
Sub Vorgaben_Einlesen()
Worksheets("Punkttabelle").Activate
'Zeiten dem Wendigkeitslaufvektor zuweisen
Dim i As Integer
Dim j As Integer
For i = 1 To 25
For j = 4 To 53 Step 2
Wendigkeitslauf_Vorgaben.v(i) = Cells(j, 4)
i = i + 1
Next j
Next
For i = 26 To 50
For j = 4 To 53 Step 2
Wendigkeitslauf_Vorgaben.v(i) = Cells(j, 14)
i = i + 1
Next j
Next
End Sub
Wie ersichtlich wird in den Spalten 4 und 14 von Zeile 4 bis 53 eingelesen, dabei enthält aber nur jede 2. Zeile einen Wert, was sich ja aber mal ändern könnte.
Oben genannter Code ist meine unelegante Lösung, das eigentliche Problem zu umgehen und in der inneren For/Next die Sprungweite 2 (Step 2) zu wählen.
Dies ist mir zu unflexibel, denn ich möchte jede Zeile auslesen --> mein singlevektor bietet ja auch 100 Werten Platz.
Nun hab ich mal in der Hilfe gestöbert und mit dem üblichen NULL hantiert bzw. Empty, jedoch brachte keines von beidem einen Typen-Verträglichkeit mit meinem Datentyp Single, den ich brauch, da er mir bei passender Genauigkeit wunderbar als Rechengrundlage dient.
Wie kann ich nun einer Zelle, die "nicht besetzt" (leer) ist in meinem singlevektor den Wert 0 zuweisen.
Wie gesagt Versuche mit If/then Vorschaltung und Abfrage der Zellen auf Null/Empty wurde probiert.
Bitte um zahlreiche Vorschläge.
Danke
BS
Zuletzt bearbeitet: