gibt eine ganze Zeile eines mehrdimensionalen Arrays in VBA an ein eindimensionales Array zurück

8

Gibt es eine Möglichkeit, den Wert einer ganzen Zeile eines mehrdimensionalen Arrays zu einem eindimensionalen Array in VBA zurückzugeben?

Etwas wie arr_1dim = arr_2dim(3,:) ist ein Matlab-Ausdruck für die Zuordnung der Zeile 3 von arr_2dim array zu arr_1dim in einem einzigen Abschnitt.

Gibt es eine ähnliche weniger teure Methode in Excel VBA?

    
surya teja3 05.01.2013, 16:10
quelle

5 Antworten

7

Nein, es gibt keine VBA-Funktion, um eine Zeile oder Spalte zu erhalten. Du kannst es nur selbst schreiben oder einen Blick darauf werfen:
Ссылка

    
KekuSemau 05.01.2013, 17:12
quelle
7

Es gibt eine einfache Möglichkeit, eine Spalte oder eine Zeile eines zweidimensionalen Arrays zu erhalten. Weisen Sie der Spalte eine Null zu, um die Zeile zu erhalten, oder weisen Sie der Zeile eine Null zu, um die Spalte zu erhalten:

%Vor%

Siehe hier: Wie schneide ich ein Array in Excel VBA?

    
rxex 27.05.2016 15:15
quelle
4

Dies ist, was ich tue, um einfach eine Dimension eines mehrdimensionalen Arrays auszudrucken.

Grundsätzlich definiere ich ein neues 1D Array und stopf es mit den Werten aus dem größeren Array.

Beispiel (3D zu 1D zum Ausdruck):

%Vor%

So mache ich es. Ich hoffe, das macht Sinn für jeden, der es liest. Ich denke, es ist ein sehr einfacher Weg, es zu tun.

    
Elias 20.07.2013 18:15
quelle
1

Matlab ist so eine großartige Anwendung, wenn es um Matrizen, Arrays, Vektoren geht ...;) Aber Excel ist nicht so schlecht, es ist auch matrixbasiert.

Also vorausgesetzt, Sie wollen nicht durchschleifen. Sie können Ihre multi-D array einfach in ein Arbeitsblatt mit Transpose function ausgeben.

Dann ziehe Row mit Transpose in ein Array in die gewünschte Bereichsgröße.

%Vor%

Um absolut dynamisch zu sein, können Sie resize your range A2:G2 mit einer dynamischen Zeilenanzahl unter Verwendung der multi-D array row upperbound :)

verwenden     
bonCodigo 05.01.2013 19:16
quelle
0
___ answer14174239 ___

Nein, es gibt keine VBA-Funktion, um eine Zeile oder Spalte zu erhalten. Du kannst es nur selbst schreiben oder einen Blick darauf werfen:
Ссылка

    
___ answer17765218 ___

Dies ist, was ich tue, um einfach eine Dimension eines mehrdimensionalen Arrays auszudrucken.

Grundsätzlich definiere ich ein neues 1D Array und stopf es mit den Werten aus dem größeren Array.

Beispiel (3D zu 1D zum Ausdruck):

%Vor%

So mache ich es. Ich hoffe, das macht Sinn für jeden, der es liest. Ich denke, es ist ein sehr einfacher Weg, es zu tun.

    
___ qstnhdr ___ gibt eine ganze Zeile eines mehrdimensionalen Arrays in VBA an ein eindimensionales Array zurück ___ tag123arrays ___ Ein Array ist eine geordnete Datenstruktur, die aus einer Sammlung von Elementen (Werten oder Variablen) besteht, die jeweils durch einen oder mehrere Indizes identifiziert werden. Wenn Sie nach bestimmten Varianten von Arrays fragen, verwenden Sie stattdessen diese verwandten Tags: [Vektor], [Arraylist], [Matrix]. Wenn Sie dieses Tag verwenden, markieren Sie die Frage auch mit der verwendeten Programmiersprache, es sei denn, Ihre Frage bezieht sich nicht auf eine bestimmte Programmiersprache. ___ answer434299464 ___

Da ich diese Frage kürzlich selbst gestellt hatte, möchte ich meinen Code teilen. Ich habe eine gebrauchsfertige Funktion geschrieben, in der Sie auswählen können, ob Sie eine Spalte oder eine Zeile extrahieren möchten:

%Vor%     
___ answer14175374 ___

Matlab ist so eine großartige Anwendung, wenn es um Matrizen, Arrays, Vektoren geht ...;) Aber Excel ist nicht so schlecht, es ist auch matrixbasiert.

Also vorausgesetzt, Sie wollen nicht durchschleifen. Sie können Ihre %code% einfach in ein Arbeitsblatt mit %code% function ausgeben.

Dann ziehe %code% mit %code% in ein Array in die gewünschte Bereichsgröße.

%Vor%

Um absolut dynamisch zu sein, können Sie %code% your %code% mit einer dynamischen Zeilenanzahl unter Verwendung der multi-D %code% :)

verwenden     
___ tag123vba ___ Visual Basic für Applikationen (VBA) ist eine ereignisgesteuerte, objektorientierte Programmiersprache zum Schreiben von Makros, die für die gesamte Office-Suite und andere Anwendungen verwendet wird. VBA entspricht nicht VB.NET oder VBS; Wenn Sie in Visual Studio arbeiten, verwenden Sie [vb.net]. Wenn sich Ihre Frage speziell auf die Programmierung einer MS Office-Anwendung bezieht, verwenden Sie auch das entsprechende Tag: [Excel-VBA], [Zugriff-VBA], [Word-VBA], [Outlook-VBA] oder [Microsoft-Project-VBA] . ___ tag123multidimensionarray ___ Multidimensional-Arrays können als multidimensionale Tabellen beschrieben werden. Jeder Index, der verwendet wird, um ein bestimmtes Element zu finden, wird als Dimension bezeichnet. ___ tag123assign ___ Etwas, das sich auf eine Zuweisungsoperation bezieht, d. h. den Vorgang, bei dem der Inhalt einer Variablen geändert wird, um einen bestimmten Wert wiederzugeben. ___ answer37486990 ___

Es gibt eine einfache Möglichkeit, eine Spalte oder eine Zeile eines zweidimensionalen Arrays zu erhalten. Weisen Sie der Spalte eine Null zu, um die Zeile zu erhalten, oder weisen Sie der Zeile eine Null zu, um die Spalte zu erhalten:

%Vor%

Siehe hier: Wie schneide ich ein Array in Excel VBA?

    
___ qstntxt ___

Gibt es eine Möglichkeit, den Wert einer ganzen Zeile eines mehrdimensionalen Arrays zu einem eindimensionalen Array in VBA zurückzugeben?

Etwas wie %code% ist ein Matlab-Ausdruck für die Zuordnung der Zeile 3 von %code% array zu %code% in einem einzigen Abschnitt.

Gibt es eine ähnliche weniger teure Methode in Excel VBA?

    
___
crx 15.04.2017 18:02
quelle