Dies geht von einem vorherigen Thread aus, in dem Code ausgeführt werden soll, wenn ein beliebiges Kontrollkästchen angeklickt wird. Jsotola war so freundlich, mir zu helfen, das auslösende Ereignis zu definieren. Hier ist ein Link zu diesem Thema: Event triggered by ANY checkbox clickKlasse Modulcode für eine Schleife, die ausgeführt wird, wenn ein Kontrollkästchen angeklickt wird
Jetzt versuche ich, die ChkBoxGroup_Click() Sub im Klassenmodul an spezifischere Bedürfnisse anzupassen. Ich habe den Code in einer separaten Arbeitsmappe als eigenständiges Sub getestet, das ich manuell mit F5 ausführen kann, was genau so funktioniert, wie ich es mir erhofft hatte. Da ich möchte, dass es mit Checkbox-Klicks ausgeführt wird, dachte ich, ich könnte es einfach in das Klassenmodul einfügen, aber ich bekomme einen Fehler, von dem ich hoffe, dass jemand helfen könnte.
Hier ist, was ich in einem Klassenmodul mit dem Namen: „chkclass“ Option Explicit
Public WithEvents ChkBoxGroup As MSForms.CheckBox
Private Sub ChkBoxGroup_Change()
Debug.Print "ChkBoxGroup_Change"
End Sub
Private Sub ChkBoxGroup_Click()
Dim findrow As Long, findrow2 As Long
findrow = Range("B:B").Find("Feature Styles", Range("B1")).Row
findrow2 = Range("B:B").Find("Feature Options", Range("B" & findrow)).Row
For i = findrow To findrow2
If Range("B" & i).Value = Range("O" & i).Value Then
Range("C" & i).Value = True
Else: Range("C" & i).Value = False
End If
Next i
End Sub
Wenn ich ein Kontrollkästchen klicken, bekomme ich ein Fehlerfeld mit der Meldung „Fehler kompilieren: Variable nicht definiert“. es zeigt auch die „i“ in dieser Zeile:
For i = findrow To findrow2
Es funktioniert großartig in meinem anderen Blatt als eigenständiges Unter, der wie folgt lautet:
Sub FeatureStyles_TorF()
Dim findrow As Long, findrow2 As Long
findrow = Range("B:B").Find("Feature Styles", Range("B1")).Row
findrow2 = Range("B:B").Find("Feature Options", Range("B" & findrow)).Row
For i = findrow To findrow2
If Range("B" & i).Value = Range("O" & i).Value Then
Range("C" & i).Value = True
Else: Range("C" & i).Value = False
End If
Next i
End Sub
Irgendwelche Ideen, warum ich erhalte die Error?
Beautiful! Rookie bewegen! (Ich bin ein Anfänger). Vielen Dank! Funktioniert super! – csmith222
Nur ein bisschen Hintergrund zum "Warum". Sie würden damit in einem Modul normalerweise durchkommen, Standardprozedur ist, wenn Sie eine Variable verwenden, die Sie nicht definiert haben, Excel wird es für Sie tun und eine Variante erstellen, um damit umzugehen (Dieses Verhalten wird durch das Setzen der Option explizit oben gestoppt des Moduls, das Sie auf dem Klassenmodul zu haben scheinen). – Zerk
Wusste das nicht! Mehr und mehr über dieses Zeug lernen, dank der Freundlichkeit von Menschen wie dir! Vielen Dank – csmith222