Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sind Type-Variable anders?

Forumthread: Sind Type-Variable anders?

Sind Type-Variable anders?
18.09.2024 12:42:36
Florian
Mein Makro bleibt In folgender Zeile
bb = Array(bb)
stehen, wenn bb ein Type-Variable ist. Warum ist das so?

Im folgendem Code drei Beispiele, wo diese Zeile gut funktioniert, auch wenn ich die Type-Variable in ein Integer umwandle.



Type SymbolsType
Top As Integer
End Type

Sub aaa()
Dim Sy As SymbolsType
Dim Anzahl As Long
Debug.Print HoleAnzahl(15) 'Ergebnis: 1. Ist richtig
Debug.Print HoleAnzahl(Array(3, 5, 7, 9)) 'Ergebnis: 4. Ist richtig
Sy.Top = 15
Debug.Print HoleAnzahl(CInt(Sy.Top)) 'Ergebnis: 1. Ist richtig
Debug.Print HoleAnzahl(Sy.Top) 'Funktioniert NICHT
End Sub

Function HoleAnzahl(bb)
If Not IsArray(bb) Then bb = Array(bb)
HoleAnzahl = UBound(bb) - LBound(bb) + 1
End Function


In meinem konkreten Fall geht es um eine Funktion, die sowohl einen Wert als auch ein Array verarbeitet. Funktioniert gut, aber nicht mit Type-Variablen.

LG, Florian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sind Type-Variable anders?
18.09.2024 12:53:45
Onur
Function HoleAnzahl(ByVal bb)
AW: Sind Type-Variable anders?
18.09.2024 12:59:24
Yal
Hallo Florian,

es liegt daran, dass Type-Strukturen keine "einfache" Variablen sind, sondern eher wie ein Objekt zu betrachten. Es wird nicht die Variable selbst übergeben, sondern die Speicher-Adresse der Variable übergeben. Objekt-Variablen muss man immer mit Set übergeben.

Du kannst das Problem umgehen, in dem Du eine Variableübergabe als Parameter der Function in "ByVal"festlegst.
Function HoleAnzahl(ByVal bb)


Die Funktion übernimmt dann die Wert des Übergegebenen anstatt seine Adresse, was "ByRef" wäre.


VG
Yal
Anzeige
AW: Sind Type-Variable anders?
18.09.2024 15:24:50
Florian
Ja, das funktioniert.

Danke Onur und danke Yal auch für Deine gute Erklärung.

LG, Flo
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige