Einzelne Elemente aus Array auslesen

Hallo zusammen

Ich habe ein Skript, was überprüft ob gewissen Checkboxen in einem Worddokument aktiviert sind.
Dazu habe ich ein Array gefüllt mit den Namen aller benötigten Checkboxen:

ArrayG = Array(green_, green_1, green_2, green_3, green_4, green_5, green_6, green_7, green_8, green_9, green_10, green_11, green_12, green_13, green_14, green_15, green_16, green_17, green_18, green_19, green_20, green_21, green_22, green_23, green_24, green_25, green_26, green_27, green_28)

Im Anschluss zähle ich die aktiven Kisten und ermittle einen Durchschnitt:

For Each BoxG In ArrayG
If BoxG.Value = True Then
zg = zg + 1
pg = zg / 29 * 100
Label_g.Caption = pg
Else
If zg > 0 Then
pg = zg / 29 * 100
Label_g.Caption = pg
End If
End If
Next BoxG

So weit so gut - das funktioniert alles wie es soll.

Nun stehe ich aber vor dem Problem und möchte das ganze zusätzlich für die ersten 10 Boxen haben, also die Elemente green_ bis green_9 aus dem Array.
Wie kann ich nun die oben beschriebene Zählprozedur anpassen, dass nur die ersten 10 Elemente berücksichtigt werden?
Kann mir da jemand helfen? Vielen Dank!

Hinter dem Each eine Prüfung des Namens einführen:
If Val (Mid (BoxG.Name, 6,3) )

Hallo,

das Arbeiten mit Datenfeldern ist hier nicht nötig. Hier eine Lösung mit ‚count‘.


With ActiveDocument
For i = 1 To .FormFields.Count
If .FormFields(i).Type = wdFieldFormCheckBox Then
If InStr(1, .FormFields(i).Name, „_11“) > 0 Then Exit For 'bei dem Namen ‚green_11‘ steig die Schleife aus
If .FormFields(i).CheckBox.Value Then zg = zg + 1
End If
Next
If zg > 0 Then pg = Round(zg / 29 * 100,2): Label_g.Caption = pg
End With

Eine Lösung mit einer zusätzlichen Zählvariabel wäre auch möglich:

z=0: zf=0 'z=Zähler, zf=Zähler für gesetzte Checkbox
For Each BoxG In ArrayG
z=z+1
If BoxG.Value = True Then
if z

Hallo Forell,

ich würde innerhalb der For-Next-Schleife eine weitere Integer-Variable hochzählen lassen. Sobald diese den Wert 10 erreicht hat, kann die For-Next-Schleife durch „exit For“ abgebrochen werden.

Viele Grüße,
BigBen

Hallo,

probieren Sie doch mal innerhalb der for-each-Schleife einen weiteren Zähler einzubauen, der bei > 10 ein exit verursacht und aus der Schleife rausgeht.

Falls das nicht klappt, könntest Sie mir mal die Dateien per Mail zukommen lassen. [email protected] - dann kann ich mal drübersehen.

Viele Grüße,
Andreas Fastner
ASFAST-EDV