Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Arrayzuweisung über Variant

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von pistolpete1 an!   Senden Sie eine Private Message an pistolpete1  Schreiben Sie einen Gästebucheintrag für pistolpete1

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 16. Nov. 2007 17:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von pistolpete1 an!   Senden Sie eine Private Message an pistolpete1  Schreiben Sie einen Gästebucheintrag für pistolpete1

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 16. Nov. 2007 17:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pistolpete1 10 Unities + Antwort hilfreich

array ist der Name einer Funktion. Daher solltest du diesen NICHT als Variblennamen verwenden. Nimm z.B. arr - und schon läuft es.

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pistolpete1
Mitglied
Student


Sehen Sie sich das Profil von pistolpete1 an!   Senden Sie eine Private Message an pistolpete1  Schreiben Sie einen Gästebucheintrag für pistolpete1

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 16. Nov. 2007 18:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

nein daran liegt es nicht.. funktioniert auch mit arr nicht (das war nur pseudo-code) 

lg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pistolpete1
Mitglied
Student


Sehen Sie sich das Profil von pistolpete1 an!   Senden Sie eine Private Message an pistolpete1  Schreiben Sie einen Gästebucheintrag für pistolpete1

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 16. Nov. 2007 18:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 16. Nov. 2007 23:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pistolpete1 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von pistolpete1 an!   Senden Sie eine Private Message an pistolpete1  Schreiben Sie einen Gästebucheintrag für pistolpete1

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 17. Nov. 2007 17:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz