Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
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

Beschränkung Text in Array? | Herbers Excel-Forum"

Beschränkung Text in Array?
27.07.2016 11:43:07
Hendrik

Moin,
ich habe ein als String deklariertes, eindimensionales Array mit 30 Spalten. Gibt es Beschränkungen hinsichtlich der Textlänge für einen Array-Eintrag?
Grüße
Hendrik

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beschränkung Text in Array?
27.07.2016 11:49:44
RPP63
Moin!
Wie viel brauchst Du denn?
Ohne jetzt auf xlLimits nachzuschauen:
4.000.000 Zeichen funzen problemlos:
Sub XYZ()
Dim arrTxt(29) As String
arrTxt(0) = String(4000000, "x")
End Sub
Gruß Ralf
AW: Beschränkung Text in Array?
27.07.2016 15:29:28
Hendrik
Vielen Dank!
Begriffsklärung
27.07.2016 11:57:35
Michael
Hi Hendrik,
nur damit wir nicht aneinander vorbeireden: "eindimensional" bedeutet, daß das Array OHNE zweite Dimension festgelegt wurde, NICHT, daß die zweite Dimension nur "einfach" ist.
Zur Verdeutlichung: das Einlesen eines Arrays aus einem Bereich erzeugt IMMER eine zweidimensionales Array, bei "30 Spalten", die etwa mit a = Range("A1:AD30") zugewiesen wurden, hat es die Dimensionen (1 to 30, 1 to 1).
Eindimensional wäre dann das Array a1, das Du aus a erzeugen könntest mit
redim a1(1 to 30)
For i=1 to ubound(a): a1(i)=a(1,i)
a kannst Du schlicht mit Range("A1:AD30")=a ins Tabellenblatt zurückschreiben (aber es sollte irgendeine Beschränkung für die Textlänge in Zellen geben), während Du a2 nur über worksheetfunction.transpose zurückschreiben kannst, bei dem ich allerdings bei Textlängen über ein paar 100 Zeichen auf Fehlfunktionen gestoßen bin.
Solange das String-Array im Speicher ist, dürfte eine Begrenzung eher theoretischer Natur sein.
Übrigens: ein eindimensionales Array hat weder Zeilen noch Spalten, es hat nur eine untere und obere Grenze.
Schöne Grüße,
Michael
Anzeige
@Michael:
27.07.2016 12:03:58
RPP63
4E+12 Zeichen führen zu einem Überlauf.
1E+8 klappt noch, 2E+8 nicht mehr.
Irgendwo dazwischen ist die Grenze.
Gruß Ralf
Ergänzung:
27.07.2016 14:41:22
Luc:-?
Hallo, Michael;
Zitat: Ein eindimensionales Array hat weder Zeilen noch Spalten, es hat nur eine untere und obere Grenze.
Das mit den Grenzen ist zwar richtig, aber gleichzeitig muss erwähnt wdn, dass es idR horizontal gerichtet ist, also quasi eine Zeile darstellt. Es gibt aber auch vertikal gerichtete 1dimensionale Arrays, deren Elemente dann aber ebenfalls aus Arrays bestehen müssen, die, wenn letztere nur aus 1 Element bestehen, quasi eine Spalte darstellen. Man könnte diesen Fall zwar auch als Zeile ansehen, Xl wird ein solches Ergebnis einer UDF in einer ZellFml aber stets als Spalte darstellen. Als Ergebnis einer SubProzedur muss es aber erst noch in ein normales 2dimensional-1spaltiges Array gewandelt wdn, bevor es auf einen ZellBereich abgebildet wdn kann.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
Begriffsklärung-Korrektur & Danke
28.07.2016 13:02:18
Michael
Hi,
es muß natürlich heißen:
a = Range("A1:AD1") zugewiesen wurden, hat es die Dimensionen (1 to 30, 1 to 1).
sonst ist es ja "rechteckig". Weiter unten analog...
Danke an Ralf & Luc:-? für die weiteren Hinweise.
Schöne Grüße,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige