| |
 | 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: Matrix vom Sub/Function an Main übergeben (1246 mal gelesen)
|
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 23. Jul. 2015 21:03 <-- editieren / zitieren --> Unities abgeben:         
Liebes Forum, ich übergebe an eine Function bzw. an ein Sub Daten und fülle im Sub/Function eine Matrix(n, m) mit Daten, die ich daraus ableite. Diese Daten würde ich dann gerne wieder an das "Main"-Sub übergeben von dem aus das Sub/die Function aufgerufen wurde. Bislang mach ich das über eine globale Matrix. Geht das auch anders und wenn ja, wie? Vielen Dank Euch
------------------ Grüße aus München Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
   
 Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 24. Jul. 2015 11:02 <-- editieren / zitieren --> Unities abgeben:          Nur für otm
Wenn Du Parameter einer Sub/Function "byRef" deklarierst, dann werden diese auch zurückgegeben. Beispiel: Code: Private sub myMain Dim myVar as double myVar = 1.0 Call mySub(myVar) Call MsgBox(myVar) 'hier sieht man, dass die Variable '"myVar" von der Sub befüllt und an 'die aufrufende Instanz retourniert wurde End SubPrivate Sub mySub(byref X as Double) X = 24.7 End Sub
------------------
 
  www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 28. Jul. 2015 12:38 <-- editieren / zitieren --> Unities abgeben:         
|
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 28. Jul. 2015 18:01 <-- editieren / zitieren --> Unities abgeben:         
Jetzt hab ich doch nochmal eine Frage. Wenn ich ein Datenfeld übergeben möchte, was ist dann an den folgenden Zeilen falsch?
Code:
Sub MyMain() Dim intI As Integer Dim Inf(0 To 7) As Variant Inf(0) = "Layername" Call MySub(Inf(0)) 'Ausgabe der zurückgegebenen Werte For intI = 0 To 7 MsgBox "String: " & Inf(intI) Next intIEnd Sub Private Sub MySub(ParamArray X() As Variant) 'x(0) = Layername (wird übergeben) 'Definieren der Matrixwerte X(2) = "a" X(3) = "b" ... X(7) = "z" End Sub
------------------ Grüße aus München Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 28. Jul. 2015 19:07 <-- editieren / zitieren --> Unities abgeben:          Nur für otm
Wie Hollaus schon geschrieben hatte : ByRef Code:
Sub MyMain() Dim intI As Integer Dim Inf(0 To 7) As Variant Inf(0) = "Layername" Call MySub(Inf) ' ganzes Feld übergeben 'Ausgabe der zurückgegebenen Werte For intI = 0 To 7 strT = strT & "String" & intI & " : " & Inf(intI) & vbCrLf Next intI MsgBox strT End Sub Private Sub MySub(ByRef X() As Variant) ' <= Hier : ByRef statt ParamArray 'x(0) = Layername (wird übergeben) 'Definieren der Matrixwerte X(1) = "1" X(2) = "a" X(3) = "b" X(4) = "c" X(5) = "d" X(6) = "e" X(7) = "z" End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 02. Sep. 2015 20:57 <-- editieren / zitieren --> Unities abgeben:         
|