Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Benutzerdef. "Subtypen" ansprechen

VBA - Benutzerdef. "Subtypen" ansprechen
17.06.2020 18:01:27
Alexander
Hallo Forum,
ich habe ein Array XARRAY, dessen Datentyp ein benutzerdefinierter Datentype WTYPE ist. (Hier sehr sehr trivial dargestellt, um das Problem zu beschreiben. Die wahre Aufgabe ist deutlich komplizierter.)

Private Type WTYPE
tSubA As String
tSubB As String
tSubC As String
End Type
Private XARRAY(1 To 100) As WTYPE

Nun möchte ich mit einer Funktion eine Reihe von Indizes nur in einem bestimmten Subtyp von XARRAY füllen: Funktionsaufruf wäre also z.B. XARR_FUELLEN 20, 29, tSubB

Function XARR_FUELLEN(intFrom As Integer, intTo as Integer, varSubType as ?)
Dim intI As Integer
For intI = intFrom To intTo
XARRAY(intI).varSubtype = "A"
Next intI
End Function

Und nun die spannende Frage: Als was muss ich in der Funktion die Variable varSubType deklarieren, damit die Funktion läuft?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Benutzerdef. "Subtypen" ansprechen
17.06.2020 18:53:41
ralf_b
witzbold. du hast "deutlich kompliziertere" Strukturen und hast nicht nötig zu erwähnen was du ausprobiert hast. Und das setze ich vorraus. Wenn dem subtype einen String zuweist, was könnte dessen Typ sein?
AW: VBA - Benutzerdef. "Subtypen" ansprechen
17.06.2020 18:53:42
ralf_b
witzbold. du hast "deutlich kompliziertere" Strukturen und hast nicht nötig zu erwähnen was du ausprobiert hast. Und das setze ich vorraus. Wenn dem subtype einen String zuweist, was könnte dessen Typ sein?
AW: VBA - Benutzerdef. "Subtypen" ansprechen
17.06.2020 19:23:00
Tino
Hallo,
du könntest es noch komplizierter machen und eine Enumeration verwenden.
Private Type WTYPE
tSubA As String
tSubB As String
tSubC As String
End Type
Enum enuSubIndex
iSubA
iSubB
iSubC
End Enum
Private XARRAY(1 To 100) As WTYPE
Function XARR_FUELLEN(intFrom As Integer, intTo As Integer, SubIndex As enuSubIndex)
Dim intI As Integer
Select Case SubIndex
Case iSubA
For intI = intFrom To intTo
XARRAY(intI).tSubA = "A"
Next intI
Case iSubB
For intI = intFrom To intTo
XARRAY(intI).tSubB = "B"
Next intI
Case iSubC
For intI = intFrom To intTo
XARRAY(intI).tSubC = "C"
Next intI
End Select
End Function

Gruß Tino
Anzeige
AW: VBA - Benutzerdef. "Subtypen" ansprechen
17.06.2020 20:24:29
Alexander
Hallo Tino,
... ginge sogar noch "komplizierter" und statt der Enum einfach ein Integer übergeben und darüber den SELECT CASE laufen lassen :-)
Deine natürlich lauffähige Lösung wäre mir auch schon in den Sinn gekommen (und ist mein letzter Strohhalm), aber nur wenn WTYPE wirklich nur aus drei Subtypen bestehen würde. Tatsächlich hat mein WTYPE deutlich mehr -- bunt gemischt Strings, Integers, Booleans, ... -- und mit einer Schleife für jeden einzelnen ist die Fehleranfälligkeit bei Änderungen viel zu hoch. Ich würde lieber der allgemeingültigen Schleife "von außen" gleich den Subtyp mit vorgeben, an dem sie sich abarbeiten soll.
Gruß,
Alex
Anzeige
AW: VBA - Benutzerdef. "Subtypen" ansprechen
17.06.2020 20:50:32
Tino
Hallo,
wenn es zu viele sind nimm einfach ein Array mit zwei Dimensionen und lass das andere Zeugs weg.
Dim XARRAY(1 To 100, 1 To 3)
Gruß Tino

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige