PDA

Vollständige Version anzeigen : Arbeiten mit Arrays


vbanewcomer
16.07.2012, 19:23
Hallo Gemeinde,
ich beschäftige mich derziet mit dynamischen Formularen und Arrays.
Hochinteressant muss ich sagen ......

Derzeit verstehe ich nachfolgendes Vorhaben nicht bzw. klappt das bei mir nicht.

Ich möchte mittes Array mehrere Werte eine Tabelle einlesen um sie dann dynamisch ins Formular zu übertragen.

Die Menge der Werte kann variieren weshalb ich bei der Deklaration des Array kenen festen Wert eingeben kann.
Dim lstzeile As Variant ' letzte zeile von Grunddaten


lstzeile = Sheets("Grunddaten").Cells(Rows.Count, 1).End(xlUp).Row ' letzte zeile von Grunddaten ermitteln
Dim Gdaten(lstzeile, 2) As String 'Variable deklarieren für Grunddaten


Ich möchte also zeispaltige Daten einlesen
Leider kenne ich die Anzahl der Daten nicht weshalb ich bei der Reservierung des Arrays keinen fixen Wert eingeben kann.

Ich könnte natürlich eine größere Zahl angeben die ich vorraussichtlich benötige aber da die Felder im Formular in Abhängigkeit der Felder der Datentabelle erstelle, würde ich unnötige Felder erstellen wenn ich diese in einer Schleife erstellen lassen möchte.

Ich bekomme die Fehlermeldung " Fehler beim Kompilieren" und "kontanter Wert erforderlich"

Was mach ich denn falsch ?

Danke und Gruß

josef e
16.07.2012, 19:44
<div style="width:98%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo ???,

dafür gibt es die ReDim-Anweisung, in deine Fall brauchst du das aber nicht, einen Tabellenbereich kann man direkt einem Array zuweisen.

<div style="background-color:#F5F5F5; border-width:2px; border-style: groove; border-color:#ff9966; padding:4px;"><nobr><span style="font-family:Courier New,Arial; font-size:8pt ;" ><b><span style="color:#0000FF"; >Sub</span> test()</b><br />&nbsp;&nbsp;<span style="color:#0000FF"; >Dim</span> lngLast <span style="color:#0000FF"; >As</span> <span style="color:#0000FF"; >Long</span><br />&nbsp;&nbsp;<span style="color:#0000FF"; >Dim</span> Gdaten() <span style="color:#0000FF"; >As</span> <span style="color:#0000FF"; >Variant</span><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >With</span> Sheets(<span style="color:#808080"; >"Grunddaten"</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;lngLast = .Cells(Rows.Count, 1).End(xlUp).Row <span style="color:#008000"; >' letzte zeile von Grunddaten ermitteln</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF"; >Redim</span> Gdaten(1 <span style="color:#0000FF"; >To</span> lnglats, 1 <span style="color:#0000FF"; >To</span> 2) <span style="color:#008000"; >'ist aber gar nicht n&ouml;tig!</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Gdaten = .Range(.Cells(1, 1), .Cells(lngLast, 2)) <span style="color:#008000"; >'Daten direkt zuweisen!</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >With</span><br />&nbsp;&nbsp;<br /><b><span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >Sub</span></b><br /><br /></span></nobr></div>


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

vbanewcomer
16.07.2012, 20:53
Hallo josef,
funktioniert leider nicht.
Ich bekomme die Meldung "Typen unverträglich"

Gdaten = .Range(.Cells(1, 1), .Cells(lstzeile, 2)) 'Daten direkt zuweisen!


lstzeile = Sheets("Grunddaten").Cells(Rows.Count, 1).End(xlUp).Row ' letzte zeile von Grunddaten ermitteln
Dim Gdaten() As String 'Variable deklarieren für Grunddaten

With Sheets("Grunddaten")
Gdaten = .Range(.Cells(1, 1), .Cells(lstzeile, 2)) 'Daten direkt zuweisen!
End With


Gleicher Fehler bei
Dim Gdaten() as Variant

Gruß vbanewcomer

josef e
16.07.2012, 21:02
<div style="width:98%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo ???,

sorry, hatte vergessen zu schreiben dass bei direkter Zuweisung die () wegzulassen sind.
<pre>Dim GDaten As Variant</pre>


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

vbanewcomer
16.07.2012, 21:23
aaahhhh, jetzt passt es.

ganz großen Dank