Deaktivieren von Kontrollkästchen und die entsprechenden Daten in VBA

Ich versuche, das Programm ein VBA-code, deaktivieren Sie alle meine Kontrollkästchen auf einem Arbeitsblatt in Excel und löscht auch die Daten aus der Zelle Links neben dem Kontrollkästchen (es ist ein Datum, das füllt aus einem anderen makro, wenn die checkbox aktiviert ist).

Meine Checkboxen aus der Symbolleiste Formular. Ich kann die Boxen zu deaktivieren, aber sobald ich den code einfügen, löschen Sie das Datum bekomme ich

run-time error '1004' "kann nicht die checkboxes-Eigenschaft des worksheet-Klasse".

Hier ist der code, den ich versuche, mit zu arbeiten:

Sub ClearAllCheckboxes()
Dim Answer As String
Dim MyNote As String
Dim CB As Object
Dim LRange As String
Dim cBox As CheckBox

LName = Application.Caller
Set cBox = ActiveSheet.CheckBoxes(LName)
MyNote = "This will Clear all CheckBoxes Proceed? "
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???")
LRange = "F" & CStr(LRow)

If Answer = vbNo Then
    Exit Sub
Else
    For Each CB In ActiveSheet.CheckBoxes
        CB.Value = xlOff
        If cBox.Value = 0 Then
            ActiveSheet.Range(LRange).Value = Null
        End If
    Next CB
End If

End Sub

Hier ist der code in die Kontrollkästchen, um das Datum einzufügen und notieren Sie die Informationen, die in einem anderen Arbeitsblatt:

Sub Process_CheckBox()

Dim cBox As CheckBox
Dim LRow As Integer
Dim LColumn As Integer
Dim RRow As Integer
Dim LRange As String
Dim RRange As String
Dim ERange As String
Dim FRange As String



LName = Application.Caller
Set cBox = ActiveSheet.CheckBoxes(LName)

'Find row that checkbox resides in
LRow = cBox.TopLeftCell.Row
LRange = "F" & CStr(LRow)
RRow = cBox.TopLeftCell.Row
RRange = "B" & CStr(RRow)
ERange = "E" & CStr(RRow)
FRange = "F" & CStr(RRow)


'Change date in column B, if checkbox is checked
If cBox.Value > 0 Then
ActiveSheet.Range(LRange).Value = Date
ActiveSheet.Range(RRange).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Log").Select
Range("A" & ActiveSheet.Rows.Count). _
End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
Columns("A:A").EntireColumn.AutoFit

Sheets("Daily").Select
ActiveSheet.Range(ERange).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Log").Select
Range("D" & ActiveSheet.Rows.Count). _
End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Daily").Select
ActiveSheet.Range(FRange).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Log").Select
Range("C" & ActiveSheet.Rows.Count). _
End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False

'Clear date in column B, if checkbox is unchecked
Else
  ActiveSheet.Range(LRange).Value = Null
End If

End Sub
Wo ist der Wert der variable LRow gesetzt? LRange ist nie gleich eine gültige Adresse mit nur der code angezeigt.
Auch, was den Aufruf dieser Funktion (als @DavidZemens fragt unten, läuft dies verursacht einen Fehler, es sei denn, das Objekt nannte es den gleichen Namen wie eine checkbox)? Und das nicht immer cBox auf FALSE und immer klar das Datum?
Guter Fang auf dem LRow. Ich habe anpassen hinzufügen DIM LRow as Integer, aber immer noch einen Fehler. Ich rufe den code througha Schaltfläche auf dem Arbeitsblatt erstellt durch die Symbolleiste Formulare. Ich bin sehr neu in VBA, so dass ich zog eine Menge von dieser zusammen aus dem code, den ich schrieb, um das Datum einzufügen, wenn die Kontrollkästchen aktiviert sind und entfernen Sie Sie, wenn deaktiviert. Ich will den button, um entfernen Sie alle auf einmal.
Hier der code, den ich für die Checkboxen. Es fügt das Datum und die Datensätze Informationen, die in einem anderen Blatt:

InformationsquelleAutor user2956485 | 2013-11-05

Schreibe einen Kommentar