| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Arrayzuweisung über Variant (1293 mal gelesen)
|
pistolpete1 Mitglied Student
 
 Beiträge: 102 Registriert: 06.01.2007
|
erstellt am: 16. Nov. 2007 17:49 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Ich habe wieder ein Anfängerproblem: Warum geht das nicht: Code:
public function test() as variant dim array(0 to 10) as variant dim x(0 to 1) as variant dim s as String dim d as Double s = "test" d = 0.5 x(0) = s x(1) = d for i = lbound(array) to ubound(array) array(i) = x next i test = array end function sub TestFunction()
dim array as variant array = test() ' Fehler Illegale Typzuweisung ' Leuchtet mir auch ein, aber wie kann ich es besser machen? ' array(0) ist ja normal ein Array of Variant (0 to 1) MsgBox array(0)(0) end sub
Wie kann ich dieses Problem gut lösen?
lg Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pistolpete1 Mitglied Student
 
 Beiträge: 102 Registriert: 06.01.2007
|
erstellt am: 16. Nov. 2007 17:51 <-- editieren / zitieren --> Unities abgeben:         
Sorry habe noch eine Frage in diesem Zusammenhang: Wie übergibt man ein Array an eine Funktion bzw. wie gibt man das Array an die aufrufende Funktion zurück (ohne ByRef und Variant als Hilfsmittel). Lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten

 Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - ACA 2013 Arcibem System: Windows NT, 2000, XP Internet-Startseite: http://www.archi.de
|
erstellt am: 16. Nov. 2007 18:00 <-- editieren / zitieren --> Unities abgeben:          Nur für pistolpete1
|
pistolpete1 Mitglied Student
 
 Beiträge: 102 Registriert: 06.01.2007
|
erstellt am: 16. Nov. 2007 18:07 <-- editieren / zitieren --> Unities abgeben:         
|
pistolpete1 Mitglied Student
 
 Beiträge: 102 Registriert: 06.01.2007
|
erstellt am: 16. Nov. 2007 18:18 <-- editieren / zitieren --> Unities abgeben:         
Verzeihung, du hast recht, es funktioniert. Ich hatte ein etwas komplizierteres beispiel, bei dem es nicht funktionierte und ich kann schwören, dass ich alles gleich gemacht hab, aber jetzt gehts  . Kannst du mir bitte noch erklären wir ich korrekt Arrays als Returnwert bei einer Funktion angebe und wie ich Arrays an eine Funktion übergebe? Lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 16. Nov. 2007 23:02 <-- editieren / zitieren --> Unities abgeben:          Nur für pistolpete1
Hallo Peter, mir ist nicht ganz klar, worauf dein Code hinauslaufen soll. Wenn das nur eine Art 'Übung'/Exempel war, dann finde ich es unglücklich, da man solche Konstrukte (Array im Array) eigentlich sinvoller händeln könnte, beispielsweise mit 2-dim. Arrays. Ansonsten funktioniert ja der Code, überflüssig wären in der Sub die Übergabe/Dimensionierung Array=test, sondern du kannst auf die Function test direkt zugreifen. Code:
Public Function test() As Variant Dim arr(0 To 10) As Variant Dim x(0 To 1) As Variant Dim i x(0) = CBool(0) x(1) = CBool(1) For i = LBound(arr) To UBound(arr) arr(i) = x Next i test = arr End Function Sub testetest() Debug.Print UBound(test), UBound(test(0)), test(0)(0) End Sub
Wiegesagt, man erkennt schlecht, was du eigentlich mal vorhast mit deiner Function und dem Feld., deswegen ist die Antwort auch etwas vage. lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pistolpete1 Mitglied Student
 
 Beiträge: 102 Registriert: 06.01.2007
|
erstellt am: 17. Nov. 2007 17:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo Nancy, danke für deine Antwort! Du hast recht, das Beispiel war wirklich unglücklich gewählt, aber ich bin davon ausgegangen, dass es nicht funktioniert und habe es deshalb gepostet, ohne es vorher zu testen, in fester Überzeugung, dass der Fehler für euch auf der Hand liegt. Trotzdem danke, dass ihr euch die Mühe gemacht habt. Ich habe bereits eine Struktur definiert, die mein Problem befriedigend löst und benötige deshalb kein zweidimensionales Array mehr. Vielen Dank, Liebe Grüße Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |