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

Resize Array vertikal?

Resize Array vertikal?
12.03.2018 09:04:23
Burak
Guten Morgen und schönen Montagmorgen :D
also ich bin auf eine einfachere Methode gestoßen verschiedene Werte in eine Zeile zu schreiben: Die Resize-Array-Methode.
Nun suche ich nach einer Methode dies auch vertikal hinzubekommen.
Also aus
Range("A1").Value = "a"
Range("B1").Value = "b"
...
habe ich
.Range("A1").Resize(, 3) = Array("a", "b", ...)
gemacht.
Wenn ich aber aus
Range("A1").Value = "a"
Range("A2").Value = "b"
...
folgendes mache:
.Range("A1").Resize(3) = Array("a", "b", ...)
dann kriege ich nur das "a" mehrfach ausgegeben.
Vermute das muss man mit einem Array im Array machen, aber bin noch großer Neuling im Bereich Arrays!
Liebe Grüße und vielen Dank!

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.Transpose(Array("a", "b", "c")) - o.T.
12.03.2018 09:28:00
Beverly


Läuft, Danke! o.w.T
12.03.2018 10:41:14
Burak
Danke für die Rückmeldung - o.w.T.
12.03.2018 11:24:59
Beverly


AW: Resize Array vertikal?
12.03.2018 09:29:13
Daniel
Hi
wenn du versuchst, ein eindimesionales Array in ein zweidimesnionales Array (Zellbereich) zu übertragen, so ergibt das immer ein zweidimensionales Array mit einer Zeile und vielen Spalten.
um daraus jetzt ein zweidimesionales Array mit vielen Zeilen und einer Spalte zu machen, wendet man Worksheetfunctioin.Transpose an:
.Range("A1:C1") = Array("a", "b", "c")
.Range("A1:A3") = Worksheetfunction.Transpose(Array("a", "b", "c"))
Gruß Daniel
Gruß Daniel
Anzeige
AW: OT: Welche Dimensionalität hat dieses 'Array' ...
13.03.2018 03:46:06
Daniel
Was bekommst du, wenn du von diesem Array die Ubounds der verschiedenen Dimensionen abfragst?
was ist Array(1, 2, 3), ein Vektor oder ein Kovektor?
wird Array(1, 2, 3) horizontal oder Vertikal aus gegeben?
Gruß Daniel
Anzeige
OT: Das ist eine Gegenfrage zum angefragten ...
13.03.2018 13:58:30
Luc:-?
Array, Daniel,
nicht zu dem von mir o.t. vorgestellten, das einen echten 1dimensionalen Vektor in mathematischem Sinn mit VBA-Mitteln abbbildet. Das Xl-Ergebnis ist dann natürlich wieder 2dimensional, weil es in einer ZellFml (nicht in einer Subprozedur, weshalb Resize und wf.Transpose dort hierauf auch nicht anwendbar wären) entsprd umgeformt wird, da Xl listenorientiert arbeitet und deshalb auch in VBA klassische n-dimensionale VBA-Arrays nur als Kovektor 1dimensional sein können (wdn in Xl ebenfalls umgeformt, allerdings auch aus Subprozeduren). Das entspricht nicht dem üblichen mathematischen Gebrauch des Begriffes Vektor, sondern dem eines Kovektors. Interessanterweise wdn aber auch in VBA Matrizen ohne ZellBezug spalten-, d.h. also vektorweise durchlaufen, nur ZellBereiche zeilen-, also kovektorweise.
Und natürlich ist das von mir vorgestellte kein klassisches n-dimensionales VBA-Array, sondern mathematisch gesehen ein Tensor(1,0), dessen Elemente (um das zu erreichen) allerdings ebenfalls aus Arrays bzw mathematisch Tensoren(0,0), die zwar mathematisch als Skalare verstanden, aber in VBA von dimensionslosen Skalaren unterschieden wdn. Die Tensor-Definition setzt übrigens jeden höher­di­men­sionalen Tensor aus Tensoren niedrigerer Stufe zusammen, Matrizen (als 2Tensoren) also aus Vektoren mit Kovektoren als Ele­mente (bzw umgekehrt). Dem folgen viele OOL-Pgmmiersprachen bei ihren Array-Objekten und in VBA wäre das eine mögliche Neben­form (Stichworte Variant mit einem Array bzw Arrays in an Array), die in Xl, falls möglich, in eine normale Xl-Matrix transformiert wird. Das geschieht (nur in Xl!) erstaun­licherweise auch beim Kronecker-Produkt 2er Matrizen, wenn man die 2. entsprd oft in der Fml ver­viel­facht. Nur wdn dann nur ihre Eckwerte in Xl abgebildet (je nach Fml-Konstruktion die ersten oder die äußeren).
Luc :-?
Anzeige
AW: OT: Das ist eine Gegenfrage zum angefragten ...
13.03.2018 14:03:14
Daniel
danke, dass wir das jetzt auch wissen.
Bitte sehr! Es ist doch immer wieder 1 Freude, ...
14.03.2018 00:33:46
Luc:-?
…neues Wissen vermitteln zu dürfen, zumal ja fast jeder (auch viele AWer!) behauptet, dass er hier auch etwas lernen kann und will. Auch du hattest schon mal so etwas geschrieben, falls ich mich recht entsinne… ;-]
Allerdings habe ich leider mitunter schon den Eindruck, dass das bei manchem nur ein Lippenbekenntnis und nicht wirklich ernst gemeint ist. Ehrlicher sind dann allerdings diejenigen, die so etwas gar nicht erst behaupten…
Luc :-?
AW: Bitte sehr! Es ist doch immer wieder 1 Freude, ...
14.03.2018 07:57:59
Daniel
nuja Luc, genauso gibt des auf Seiten der Antworter welche, bei denen man den Eindruck hat, dass die Hauptintention ihrer Beiträge nicht ist, anderen zu helfen oder ihnen weiteres Wissen zu vermitteln, sondern in erster Linie dazu dienen soll, ihre eigene Leistung zu präsentieren und sich dafür würdigen zu lassen.
Gruß Daniel
Anzeige
Das zählt auch zur Menschenwürde ;-))))))
14.03.2018 09:58:35
lupo1
Davon nimmst du dich natürlich aus, ...
14.03.2018 20:39:49
nimmst
…Daniel,
unterstellst das aber gerne anderen. Woraufhin denn dann diese künstliche Unterscheidung…?
Objektiv kann so etwas natürlich niemals sein, sondern stets subjektiv und damit vom eigenen Ego bestimmt. Wenn man so etwas zur Bewertungsgrundlage jedweder Leistung mache würde, was mitunter sogar in der (bzw bestimmten) Wissenschaft(en) vorkommt, gäbe es bald keine ernst zu nehmende mehr. Fakes, Plagiate und Irrtümer haben sich in den letzten Jahrzehnten in diesem Bereich ohnehin deutlich vermehrt (sogar in den Natur­wis­sen­schaften), einerseits auf Grund zunehmenden Leistungsdrucks und auch, weil mehr ent­deckt wdn. Trotzdem wünscht sich wohl nie­mand mittelalterliche Dogmenherrschaft zurück, obwohl man in manchen Foren genau die­sen Eindruck gewinnen könnte. Viele scheuen halt jedwede Art von Veränderung, besonders, wenn dadurch ihr Erfah­rungs- bzw Erle­bens­horizont überschritten wird…
Luc :-?
Anzeige
AW: Davon nimmst du dich natürlich aus, ...
14.03.2018 21:06:35
nimmst
Wer seine Beiträge schon mit einer Unterstellung beginnt, mit dem braucht man nicht weiterdiskutieren.
Was wolltest du denn noch diskutieren? ...
15.03.2018 03:36:50
Luc:-?
Hattest du die von dir erwähnte Motivation nicht oft genug mir unterstellt? Je stärker jemand von derartigen Motiven geleitet wird, desto eher wird er diese auch anderen unterstellen, denn das ist ebenfalls menschlich. Und das kam nun mal zuerst bzw allein von dir! Und, falls du es nicht selber warst, hast du zumindest versäumt, dich davon zu distanzieren.
Mir wäre jedenfalls nicht egal, was jemand unter meinem (Nick-)Namen schreibt…
Luc :-?
Nicht unterstellt...
16.03.2018 07:25:33
Daniel
Luc,
sondern immer begründet mit deinen Verhaltensweisen, beschrieben, warum ich diesen Eindruck von dir habe.
Gruß Daniel
Anzeige
Was meinst du wohl, was ich für einen solchen ...
18.03.2018 00:57:38
Luc:-?
…von dir habe, Daniel…‽
Leute, die alles nach ihrem subjektiven Eindruck bzw „Bauchgefühl“ beurteilen und sich dabei noch im Recht wähnen, stehen mir bis hier „‾“! Darin wähnen sich ja schon unsere selbst­ernannten „Eliten“ und ihre Follower zur Genüge. Die Einen wollen uns für dumm verkaufen und die Anderen sind bereits drauf reingefallen u/o haben sich selbst verkauft…
Es gehört wohl mit zu deinem konkurrenzaffinen Denken und Weltbild, kein Wissen ohne konkreten Anlass und Grund weiter­zu­ge­ben. Wer anders denkt und handelt, muss folglich ein Angeber oder schlimmer, Blender, sein. Das wären dann auch alle Wissen­schaft­ler der Vergangen­heit und auch noch Gegenwart gewesen, die Neues ohne konkreten Auftrag entdeckt und weitergegeben hatten und haben…
Na, dann viel Erfolg und immer schön bedeckt halten, damit dich ja keiner für'nen Angeber hält… :-]]
Übrigens muss ich mich gerade von dir wohl nicht belehren lassen…
Luc :-?
Anzeige
AW: Resize Array vertikal?
12.03.2018 09:36:43
Luschi
Hallo Burak,
meinst Du das so?

Sub MachMal()
Dim v As Variant
v = Array("a", "b", "c")
With ActiveSheet
.Range("A1").Resize(UBound(v) + 1, UBound(v) + 1) = v
End With
End Sub
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige