Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

Klasse einlesen mit Variants

Klasse einlesen mit Variants
15.03.2023 10:00:58
Shouchen

Hallo allerseits,

ich suche erneut nach weisem Rat, ich hatte nun schon eine Weile im Internet gesucht, wurde aber leider nicht so richtig fündig oder habe die Lösungen nicht verstanden.
Mein Problem ist, dass ich ein Klassenmodul mit Variants initialisiere und diese dann über Methoden als Subs gerne füllen würde.

Bisher hatte ich hier, mit Variablen keine Probleme, nun bekomme ich aber die Fehlermeldung:
"objektvariable oder with-blockvariable nicht festgelegt", am With-Blockvariable hängt es nicht.

Die Klasse sieht bisher wie folgt aus und wird global initialisiert:

'Liste Tpyen
Dim Typ(8) As Variant

'Matrix über die Nahkampfwaffentypen, aufgeteilt auf 1-Hand und 2-Hand
Dim Nah1H(8, 4) As Variant
Dim Nah2H(8, 6) As Variant

'Matrix Schwierigkeit für Herstellung
Dim SchwH(10, 8) As Variant

'Matrix Zeit der Produktion
Dim ZeitP(10, 8) As Variant

'Matrix Kosten der Produktion
Dim KostenP(10, 8) As Variant

'Matrix Für 2H, Kritt TW +/-, Schwierigkeitsveränderung
Dim KrittTWZusatz(10, 8) As Variant

'Matrix Schw. Ä 2H, Kritt TW, Für 1H, Dmg Add, Schwierigkeitsänderung
Dim DmgAddZusatz(10, 8) As Variant

'Einlesen des ersten Arrays - Test
Public Sub Einlesen()

Dim i As Long
Dim j As Long
Dim TypN As String

    For i = 0 To 7
        MsgBox (Abgriff("F" & i))
    Next
End Sub

Mein Sub um die Methode der Klasse zu starten:

Sub Einlesen()

    NahkW.Einlesen
    
End Sub


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Klasse einlesen mit Variants
15.03.2023 10:12:46
Yal
Hallo Shouchen,

Ich glaube nicht, dass es mit Variant zu tun hat.

Es ist eher so, dass die Instanzieren eines Objektes, also die "Verwirklichung" einer Klasse (eine Klasse ist nur eine Definition), die Belegung von Speicher verursacht.

Deswegen werden diese in einer spezielle Form gerufen:
Set SoHeisstMeineObjektVariable = New clsSoHeisstMeineKlasse
erst danach kannst Du auf den Eigenschaften/Methoden des Objekts zugreifen:
SoHeisstMeineObjektVariable.einlesen
Wenn Du aber in diesen Arrays einen Objekt-Variable speichern möchtest, müsstest Du
Dim Nah1H(8, 4) As Object
verwenden, was aber zwingt, alle Inhalt in Form von Object zu übergeben.

Alternativ wäre typfrei zu definieren, was in Klassen ungern gesehen wird:
Dim Nah1H(8, 4) 
Aber ich habe die Vermutung, dass Du das schon alles weisst und nicht die Antwort zu deiner Frage darstellt. Vielleicht hilft es Dir aber, deine Frage genauer zu stellen.

VG
Yal


Anzeige
AW: Klasse einlesen mit Variants
15.03.2023 10:44:53
Shouchen
Hallo Yen,

vielen Dank schon einmal für deine Antwort!
Ich werde damit mal versuchen rumzuprobieren, ich habe tatsächlich Punkt1 praktisch ignoriert.
Sollte nun aber wissen wie es geht.

Andernfalls, wenn es harkt, melde ich mich nochmal.

Danke dir soweit. :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige