Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array - Keine Zuweisung an Datenfeld möglich

Array - Keine Zuweisung an Datenfeld möglich
24.04.2009 14:59:55
eres
Einen sonnigen Gruß ins Forum,
eigentlich denke ich dass ich mein Level mit VBA bescheiden ganz gut beschreibe, obwohl die nachfolgende Frage für Euch sicher eher VBA = 0 vermuten lässt.
Folgendes Beispiel funktioniert bestens:

Sub Beispiel_1()
Dim BU(1 To 4) As Integer
BU(1) = 2000
BU(2) = 2100
BU(3) = 2200
BU(4) = 2300
MsgBox BU(1)
End Sub


Schreibe ich jedoch:


Sub Beispiel_2()
Dim BU(1 To 4) As Integer
BU = Array(2000, 2100, 2200, 2300)
MsgBox BU(1)
End Sub


erhalte ich bei der Zeile BU = Array ...
die Fehlermeldung: " Keine Zuweisung an Datenfeld möglich"
Ändere ich die Dimensionierung in Beispiel 2 auf
Dim BU() as Integer
erhalte ich bei der Zeile BU = Array ...
die Fehlermeldung: "Laufzeitfehler 13, Typen unverträglich"
Kann mir hier jemand mal die Logik erklären ?
Herzlichen Dank für jede Hilfe
Gruß
erwin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array - Keine Zuweisung an Datenfeld möglich
24.04.2009 15:31:51
Tino
Hallo,
ich denke dies liegt daran, dass Du eine Array einer Array zuweisen möchtest und dies kommt wahrscheinlich einer ReDimensionierung gleich und dies wird verweigert.
(ist nur eine Theorie von mir)
Versuche es mal so, jetzt ist Bu noch keine Arrey sondern eine Variable vom Typ Variant.
Man sollte jetzt nur bedenken, dass der erste Eintrag bei 0 anfängt.

Sub Beispiel_2()
Dim BU
BU = Array(2000, 2100, 2200, 2300)
MsgBox BU(0)
End Sub


Gruß Tino

AW: Array - Keine Zuweisung an Datenfeld möglich
24.04.2009 16:30:23
eres
Hallo Tino, ja Dein Beispiel funktioniert.
Mein Wunsch war halt, wenn ich weiss, dass ich nur Integer-Werte ins Array reinschiebe, dass ich dann durch die Definition als Integer-Datenfeld weniger Speicher verbrauche als mit einem Typ Variant.
Vielen Dank für Deine Hilfe
Gruß
erwin
Anzeige
AW: Array - Keine Zuweisung an Datenfeld möglich
24.04.2009 17:33:06
Nepumuk
Hallo Erwin,

weniger Speicher verbrauche


Fädelst du Rinkernspeicher noch mit der Hand? Also wozu? Ich hab es noch nicht geschafft die 512MB auszureizen, welche Excel für VBA reserviert.
@Tino,
es ist grundsätzlich nicht möglich einem Array mit = etwas zuzuweisen. Auch wenn du völlig identische Arrays hättest. Das geht aufgrund der Struktur im Arbeitsspeicher nicht. Dazu wäre eine Funktion nötig, welche mehrere Werte im Speicher umkopiert, das kann das = Zeichen nicht, das kann nur einzelne Speicherplätze umkopieren bzw. beschreiben.
Gruß
Nepumuk

Anzeige
AW: Array - Keine Zuweisung an Datenfeld möglich
24.04.2009 17:45:22
Tino
Hallo,
ok. danke, ist auch eine Erklärung, klingt auf alle Fälle besser wie meine Theorie.
Gruß Tino
AW: Array - Keine Zuweisung an Datenfeld möglich
27.04.2009 08:03:56
eres
Hallo Nepumuk, gestattest Du mir als VBA-Lehrling eine Nachfrage ?
Du schreibst, "es ist grundsätzlich nicht möglich einem Array mit = etwas zuzuweisen."
Wenn ich nun Tino's Lösung ansehe:

Sub TinosAnsatz
Dim BU
BU = Array(2000, 2001, 2002, 2003)
MsgBox BU(0)
End Sub


heißt dies dann, dass ich der Variable BU (vom Typ Variant) ein Array zuweise, wodurch diese Variable dann erst zu einem Datenfeld ("Array") wird ?
Auf der anderen Seite, wenn ich also ein zunächst ein Array definiere
Dim BU
dann kann ich diesem Datenfeld nur jeweils einzelne Werte (z.B. über Schleife) zuweisen ?
Hab ich dies so korrekt verstanden ?
p.s.
(1) Nochmals vielen Dank für Deine Mitarbeit hier im Forum. Ich bewundere das Wissen der Experten hier und denke, auch wenn es Mini-Schritte sind, immer etwas weiterzukommen Dank Euch.
(2) Wegen meinem "Rinkernspeicher": Ich habe versucht eine sehr große csv-Datei zu bearbeiten und stoße hier auf Excel-Speicherfehler. Ich bin so vorgegangen:
Ich lese zunächst 50.000 Sätze in ein Array (mittels Schleife), lege die dann in einem Arbeitsblatt "work" ab, lösche das Array, wähle dann Daten-Text-in-Spalten und lösche alle Spalten bis auf 2 von mir benötigte Spalten. Über diese beide Spalten erstelle ich dann eine Pivot-Tabelle. Diese übersichtliche Tabelle lese ich von Zeile 1 bis zum Ende und speichere mit die hier von mir benötigten Zeilen in einem Zielblatt ab.
Danach lösche ich das Pivotblatt und das Arbeitsblatt "work" um nun die nächsten 50.000 Sätze einzulesen.
Das klappt für so 15-20 Durchläufe ganz gut und danach bewegt sich der Rechner kaum noch und meldet "zu wenig Speicher".
Ich muss mir hier wohl einen gänzlich anderen Ansatz überlegen, der jedoch nicht Access heißen darf, da dies bei uns nicht verwendet werden soll ...
Nochmals VIELEN Dank
Gruß
erwin

Anzeige
AW: Array - Keine Zuweisung an Datenfeld möglich
27.04.2009 09:34:24
Tino
Hallo,
hast Du schon versucht die .csv Datei über
Daten --> Externe Daten importieren --> Daten importieren versucht.
Dort kannst Du bestimmen welche Spalten importiert werden sollen und welche nicht.
Userbild
Gruß Tino
AW: Array - Keine Zuweisung an Datenfeld möglich
27.04.2009 10:27:50
eres
Hallo Tino,
ja, dies kenne ich und habe das auch brav in meinem Code umgesetzt.
Ich traue mich kaum, aber ich mach's doch mal. Anbei mein abgestrippter Ansatz als Excel-File:
https://www.herber.de/bbs/user/61436.xls
Erwarte keine Lösung von Dir oder einem der Experten. Dennoch bin ich für jeden Tipp dankbar.
Wünsche Dir / Euch einen schönen Tag.
@Tino: Habe ich Nepumuks Erklärung bezüglich der Array-Zuweisung richtig verstanden ?
Gruß
erwin
Anzeige
AW: Array - Keine Zuweisung an Datenfeld möglich
27.04.2009 11:02:11
Tino
Hallo,
hättest Du auch eine entsprechende *.csv Datei die zum Makro passt?
Gruß Tino
AW: Array - Keine Zuweisung an Datenfeld möglich
27.04.2009 11:21:16
Tino
Hallo,
mach mal überall als erste Zeile Option Explicit und gehe mal auf
Debuggen --> Kompilieren …
Ist Dein Makro wirklich schon mal gelaufen?
Gruß Tino
AW: Array - Keine Zuweisung an Datenfeld möglich
27.04.2009 12:15:15
eres
Tino, Option Explicit habe ich in meinem Original-Makro drin.
Fürs hochladen hatte ich meine Datei so weit runter abgespeckt, dass nur die relevanten Code-Teile enthalten waren. Ich versuche mal eine csv incl. Makro-Datei zur Verfügung zu stellen. Das schaffe ich aber heute nicht mehr, da noch andere Aufgaben zu erledigen sind.
Nochmals vielen Dank, bis bald
erwin
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige