Hallo,
ich habe wieder mal ein sehr merkwürdiges Problem:
Ich habe ein Dictionary erstellt, in welchem Klicks auf ein ContentControl gezählt werden. Es gibt mehrere ContentControls-Paare, die wie Options-Felder funktionieren (beide haben die identische Tag-Bezeichnung). Wenn bei einem Paar auf "Nein" geklickt wird, wird die Tag-Bezeichnung im Dictionary als Key gespeichert und als Wert gibt es eine Klasse mit bestimmten Informationen zum ContentControl welches mit dem eigentlichen Problem aber nichts zu tun hat. Bei einem Klick auf "JA" des ContentControls-Paars wird der Eintrag wieder aus dem Dictionary entfernt. So der Plan.
Bei einem Klick auf "JA" wird das Dictionary-Item zwar entfernt, aber die Anzahl der Items wird zunächst mit 0 und dann plötzlich wieder mit 1 angegeben. Ich habe keine Ahnung wie das passieren kann. Hier mal der Code-Ausschnitt:
If objCC.Title = "n" Then
'tut nichts weiter zur Sache und funktioniert
'...
Else
'<-- JA-Feld wurde aktiviert, Ausschluss-Text wird aus der Collection entfernt
'Bookmark-Text auslesen
sCCBmText = tblCurrTable.Cell(lgRow, i).Range.Bookmarks(1).Range.Text
'<-- Wenn der Eintrag des aktuellen Content-Controls im Dictionary existiert
If dictControls.Exists(objCC.Tag) = True Then
' Eintrag aus Dictionary entfernen
dictControls.Remove (objCC.Tag)
Debug.Print "Eintrag " & objCC.Tag & " wurde entfernt"
Debug.Print "Anzahl der Einträge: " & dictControls.Count
'Wenn Dictionary leer ist
If dictControls.Count = 0 Then
Debug.Print "chkOptions: " & dictControls(objCC.Tag).Name, dictControls(objCC.Tag).Number
End If
End If
End If
Debug.Print vbCrLf & "Anzahl Items im Dictionary:", dictControls.Count
Debug.Print "Item: " & dictControls.Items(dictControls.Count)
Jetzt kommt allerdings das Merkwürdige. Im Direktfenster wird folgendes ausgegeben:
Eintrag ccRzDef wurde entfernt
Anzahl der Einträge: 0
Anzahl Items im Dictionary: 1
Die Ausgabe nach If dictControls.Count = 0 Then wird ebenfalls nicht ausgeführt obwohl in der Ausgabe davor die Anzahl der Items mit 0 ausgegeben wurde. Versteht das einer von Euch? Gibt es evtl. bei Ditcionarys keinen 0-Wert für die Count-Eigenschaft?
Office 365, Windows 11
|