VB 2005: Variablen deklarieren/automatisieren

Uther

Mitglied
Hallo,

ich möchte untenstehenden Code automatisieren, so dass ich ihn nicht 9 mal eintippen muss. Im 2. Codefenster ist meine Lösung aber ich weiß nicht wie ich es deklarieren soll, damit es so klappt wie ich möchte. Vielleicht habe ich auch den falschen Lösungsansatz.

Bitte helft mir mal auf die Sprünge, bin noch neu auf dem Gebiet.

Vielen Dank für Hilfe

Code:
Dim g12, l12, zählerSp as Short

If g12 < 0 Then
            If l12 > 1 Then
                zählerSp = zählerSp + l12
                l12 = 0
            End If
        End If

Code:
Dim g, l as '...keine Ahnung String geht nicht
For i = 12 To 20
            g = "g" & i
            l = "l" & i
            If g < 0 Then
                If l > 1 Then
                    zählerSp = zählerSp + l
                    l = 0
                End If
            End If
        Next i
 
Wenn du String benutzen willst, musst du bei der Übergabe deiner Variable i ein ToString() anhängen:

g = "g" & i.ToString();

Bzw. ich weiß gerade nicht welche Schreibweiße VB benötigt, schau mal was Intellisense vorschlägt. Aber mal interessenshalber was hast du mit dem Code vor? Eventuell können wir dir dann Verbesserungsvorschläge machen.
 
Danke für den Tip, aber es geht nicht.
Dim g, l as String
g = "g" & i.ToString()
Ungültige Konvertierung von der Zeichenfolge g12 in Typ Double. Das kommt als Fehlermeldung bei If g < 0 Then, obwohl nirgends was mit double deklariert wurde.

l12 bis l20 sind berechnete Ganzzahlwerte von -60 bis 180, die Gegenwerte sind im gleichem Bereich g12 bis g20, alle als Short deklariert. Für jedes g muss 0 erreicht sein, dass das dazugehörige l, falls es > 1 ist, auf einen Zähler addiert wird. Also so:

Code:
If g12 < 0 Then
            If l12 > 1 Then
                zählerSp = zählerSp + l12
                l12 = 0
            End If
        End If

Nun muss ich nur noch 8 mal den selben Code verwenden bis g20 und l20 abgehandelt sind.

Das wollte ich halt vereinfachen, damit es bei einem kurzen Code bleibt und von g12 bis g20 sowie l12 bis l20 automatisch gezählt wird.




Hmm, was ich mache ist schwer kurz zu fassen. Der Code selbst umfasst bereits ewig viele DinA4 Seiten.
Ich lerne VB über ein Fernstudium und mache etwas um meine Kenntnisse zu vertiefen sowie um dazu zulernen. Mit Sicherheit könnte man vieles anders gestalten vielleicht sogar einfacher aber ich würde es bestimmt nicht nachvollziehen können, denn wir haben noch nicht mal Klassen, Arrays usw. behandelt. Mit dem was ich bereits gelernt habe, kann ich das Programm realisieren, aber ich kam auf den Trichter den Code zu kürzen. Nun scheitert es an der Realisierung :)
Aber wenn ich euch den ganzen Code gebe, welcher aus fünf Forumlaren besteht dann würde das den Rahmen sprengen, glaube ich, und ihr würdet sowieso die Hände übern Kopf zusammenschlangen. Wenn es jemand wirklich interessiert, der kann gerne mal reinschaun, aber ich bin noch nicht ganz fertig und halbe Sachen machen keinen Sinn zu zeigen, glaub ich.
 

Neue Beiträge

Zurück