Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1172to1176
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

2.Spalte aus array nach Range

2.Spalte aus array nach Range
EvilRik
HalliHallo,
stehe auf dem Schlauch und brauche wahrscheinlich eine recht einfache Antwort.
Wie bekomme ich eine bestimmte Spalte eines mehrspaltigen Arrays in eine Spalte auf dem Arbeitsblatt (ohne FOR Schleife).
Beispiel:

sub hoppala()
dim ary(1 to 2,1 to 3)
for zae1=1 to 2
for zae2=1 to 3
ary(zae1,zae2)=zae1*zae2
next zae2
next zae1
' Hiermit kann ich ja das komplette Array in den Range schreiben
worksheets(1).range("A1:C2")=ary
'Wie bekomme ich nun Spalte 2 aus dem ary nach z.B. range("A33:A34")
'Also in der Art, die natürlich nicht funktioniert
worksheets(1).range("A33:A34")=ary("alle Zeilen",2)
end sub

Danke
Henrik

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 2.Spalte aus array nach Range
26.08.2010 18:59:24
MichaV
Hallo,
einfache Antwort: das geht mit VB(A) nicht. Du musst wohl ne FOR- Schleife nehmen.
Gruss- Micha
AW: 2.Spalte aus array nach Range
26.08.2010 19:22:19
MichaV
ich nehme das (A) in VB(A) zurück. In VB gehts definitiv nicht ohne Schleife, in Excel-VBA sollte es mit worksheetfunction.index gehen.
Gruss- Micha
AW: 2.Spalte aus array nach Range
26.08.2010 19:09:44
Gerd
Tach auch,
die Teklarierung hammer nimmer so ganz nötig?
Sub hoppala()
Dim ary(1 To 4, 1 To 3)
For zae1 = 1 To 4
For zae2 = 1 To 3
ary(zae1, zae2) = zae1 * zae2
Next zae2
Next zae1
Dim arrCol2(1 To 4)
Dim intIndex As Integer
For intIndex = LBound(ary, 1) To UBound(ary, 1)
arrCol2(intIndex) = ary(intIndex, 2)
Next
Worksheets(1).Cells(34, 1).Resize(UBound(arrCol2), 1) = Application.Transpose(arrCol2)
End Sub
Gruß Gerd
Anzeige
Danke euch, funktioniert aber...
26.08.2010 19:56:42
Henrik
...leider nur mit FOR Schleife.
Bei Array mit 3Spalten kann man ja wie Gerd es macht ja wunderbar einzelne arrays schreiben.
Handelt es sich um ein Array( 1 to 55000, 1 to 24) habe ich keine Lust einzelne 24 Arrays zu definieren.
Also wird wohl doch der ganze Batzen (nicht für Hunde, nur für Katzen) aufs wks geschrieben.
Bin aber für Anregungen weiter offen (Frage nicht).
Gruß zum Schluß
Henrik
nicht richtig gelesen?
26.08.2010 20:21:36
MichaV
Du schreibst komische Sachen. Hast Du meinen zweiten Beitrag nicht gesehen?
Option Explicit
Sub test()
Dim a(1 To 500, 1 To 24) As Long
Dim d1 As Long, d2 As Long
Dim einezeile As Variant
'Array füllen
For d1 = 1 To 500
For d2 = 1 To 24
a(d1, d2) = d1 * 1000 + d2
Next d2, d1
'zweite Zeile abgreifen
einezeile = WorksheetFunction.Index(a, 2)
'ausgeben
Range(Cells(1, 1), Cells(UBound(einezeile), 1)) = WorksheetFunction.Transpose(einezeile)
End Sub
Gruss- Micha
Anzeige
Danke Micha, aber ich hätte...
26.08.2010 20:57:56
EvilRik
... bloß gerne die eineSpalte nicht die eineZeile.
Dien Zeilenindex funktioniert wunderbar. Leider schaff ich keine Umformung mehr nach 2 Bier der Index-Funktion. Soweit ich die Hilfe richtig deute wird das aber wohl auch nix. Oder?
Gruß Henrik
AW: .. nochn Bier?
26.08.2010 21:04:42
MichaV
nach 2 Bier macht das Umformen doch erst richtig Spass.
Mal ehrlich: ich hab keinen Schimmer was Du eigentlich willst. Aber hier noch ne Variante die die 5. Spalte zurück gibt:
Option Explicit
Sub test()
Dim a(1 To 500, 1 To 24) As Long
Dim d1 As Long, d2 As Long
Dim einezeile As Variant
For d1 = 1 To 500
For d2 = 1 To 24
a(d1, d2) = d1 * 1000 + d2
Next d2, d1
einezeile = WorksheetFunction.Index(a, 0, 5)
Range(Cells(1, 1), Cells(UBound(einezeile), 1)) = (einezeile)
End Sub
Gruss- Micha
Anzeige
0,5 aTü...
26.08.2010 21:16:01
EvilRik
Hallo Micha,
jetzt hab ichs.
WorksheetFunction.Index(a, 0, 5)
Die 0 hat bei meinen Versuchen gefehlt [Index(a, , 5)]
Jetzt funktioniert es.
Danke dir :)
(Auf den Schreck trink ich noch eins)
Gruß zum Schluß
Henrik
AW: 0,5 aTü...
26.08.2010 21:18:04
MichaV
Fein, freut mich.
Trink eins für mich, bitte. Skål.
Gruss- Micha
AW: 2.Spalte aus array nach Range
26.08.2010 20:37:49
Gerd
Hallo Hendrik,
Du könntest
1) Spaltenweise in 24 Arrays einlesen, wenn die Daten aus einem Worksheet stammen
2) Um die Ausgabe eine weitere For .. Next-Schleife schreiben
3) Die array-Kapitel in ein Array-Buch schreiben
Gruß Gerd
Danke Gerd, Punkt 3 ...
26.08.2010 21:00:04
EvilRik
... überfordert mich :)
Meinst du UNION?
Oder wie?
Gruß Henrik
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige