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

Reihe eines Arrays an neues Array übergeben

Reihe eines Arrays an neues Array übergeben
Dennis
Hallo zusammen,
ich würde gerne wissen ob es möglich ist eine komplette Reihe eines Arrays an ein neues Array zu übergeben ohne dabei auf schleifen zurück greifen zu müssen.
Also das man direkt sagt
z.B. Array1(800,149)
und nun möchte ich in dem Array2 die komplette Reihe 350 zuweisen (also alle 150 spalten):
Array2 = Array(Reihe 350)
Würde mich über Hilfe sehr freuen.
Schonmal danke im voraus...
Gruss Dennis

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Reihe eines Arrays an neues Array übergeben
20.06.2011 17:06:24
MichaV
Hallo,
hier ein Beispiel mit Zeile und Spalte. Mit "reinem" VB gehts nicht, aber in VBA kannst Du ja auf die Excel- Funktion Index zurückgreifen. Aber Vorsicht, es gibt da ekelige Grenzen, Probleme kanns bei langen Texten und grossen Arrays geben. Teste also ein bissel mit Extremwerten rum.

Option Explicit
Sub bla()
Dim quelle(1 To 500, 1 To 500)
Dim ziel()
Dim x%, y%
For x = 1 To 500
For y = 1 To 500
quelle(x, y) = "x:" & x & " y:" & y
Next y, x
ziel = Application.WorksheetFunction.Index(quelle, 5)
Range("A1:A500") = Application.WorksheetFunction.Transpose(ziel)
Erase ziel
ziel = Application.WorksheetFunction.Index(quelle, 0, 5)
Range("B1:B500") = ziel
End Sub
Gruss- Micha
Anzeige
AW: Reihe eines Arrays an neues Array übergeben
20.06.2011 17:17:17
Dennis
Hallo Micha,
danke für deine Antwort.
Mein Problem ist ich habe eine ziemliche grosse Datenmenge. 100.000 Zeilen und 150 Spalten voll mit Werten.
Ich speicher die ganzen Werte in einem Array:
ar = Range("A1").CurrentRegion.Value
Und in einem neuen Array würde ich gerne nur jede 10. Zeile haben....
Hast du evtl. eine Idee wie das gehen könnte. Oder sind das schon zuviele Werte, da du meintest bei grossen Arrays kann es Probleme geben.
Danke & Gruss
Dennis
AW: Reihe eines Arrays an neues Array übergeben
20.06.2011 17:49:51
MichaV
Hallo Dennis,
das Problem gabs bei Arrays mit mehr als 5461 Elementen. Dann gabs aber auch ne Fehlermeldung. Weiss nicht ob das für XL2007 behoben wurde. (Bei XLimits ist das unter "Limitationen der Transpose-Methode" beschrieben, aber den Fehler gabs auch bei der .Index()- Methode. Intern wird da wohl transponiert...) Also einfach ausprobieren.
Ich habe auch mal gelesen dass lange Texte (über 256 Zeichen?) beim transponieren (also evtl. auch durch Index()) abgeschnitten werden.
Du musst ja sowieso mit Schleifen arbeiten, wenn Du jede 10. Zeile haben willst. Kannst Du dann nicht jede 10. Zeile in der CurrentRegion direkt abgreifen? Glaube nicht das das viel länger dauert...
Gruss- Micha
Anzeige
Nachfrage
20.06.2011 18:02:52
Reinhard
Hallo Micha,
"Mit "reinem" VB gehts nicht, aber in VBA kannst Du..."
ich dachte es wäre andersrum. Im VB-Brett des dir bekannten anderen Forums habe ich ähnlich angefragt, also Teile eines mehrdimensionalen großen Arrays in ein kleineres zu extrahieren.
In Vb scheint das zu gehen mit API, in Vba nicht.
In VB nimmt man da "copymemory", das braucht als Argument/paramter einen Pointer auf die variable (den gibts in Vba nicht), dann die Bytelänge und die Angabe wohin, also den memorybereich des neuen Arrays, dann klappt das wohl.
Liege ich falsch? (Ist schon Jahre her wo ich da diesbezüglich angefragt habe)
Gruß
Reinhard
Anzeige
AW: Nachfrage
20.06.2011 18:16:47
MichaV
Hallo Reinhard,
API gehört für mich nicht zu "reinem" VB. Mit API greifts Du auf andere (z.B. Windows-) Funktionen zurück, eben weil sie in VB nicht zur Verfügung stehen.
Gruss- Micha
AW: Reihe eines Arrays an neues Array übergeben
20.06.2011 18:52:43
Daniel
HI
eine entsprechende Funktion ist mir nicht bekannt.
da VBA beim Arbeiten mit Arrays sehr schnell ist, spricht in diesem Fall nichts gegen die Schleifenlösung.
selbst wenn es eine Funktion gäbe, intern müsste sie ja die gleiche Schleife ausführen.
Gruß, Daniel
AW: Reihe eines Arrays an neues Array übergeben
21.06.2011 11:27:48
Dennis
Hallo zusammen,
danke an alle die mir geholfen haben.
Were es nun doch mit Schleifen lösen so wie es Daniel vorgeschlagen hat.
Das Problem bei der Variante von Micha ist, das ich damit zwar genau die eine Reihe aus dem Array heraus holen kann, aber die Reihe dann nicht einfach an das neue Array anhängen kann...
Gruss Dennis
Anzeige

36 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige