0
Private Sub CheckBox9_Click()
    If CheckBox9.Value = True Then
        CheckBox9.Caption = "Done"
        ActiveWorkbook.Sheets("Well Planning Checklist").Tab.ColorIndex = 4
        'ActiveSheet.Tab.ColorIndex = 22
        Range("Q17").Value = CheckBox9.Caption
    Else
        If LCase(Range("Q17").Value) = CheckBox9.Caption Then
            CheckBox9.Value = Not (CheckBox9.Value)
        Else
            CheckBox9.Value = Not (CheckBox9.Value)
        End If
    End If
End Sub

上記を使用して、ユーザーがチェックボックスをクリックすると、チェックを外すことができないようにしました。ただし、ユーザーがユーザーをリセットできる Button を使用できるようにしたいと考えています。チェックボックスだけでなく、すべて。以下がありますが、機能していません。誰かがそれを機能させるのを手伝ってくれますか?

Private Sub CommandButton1_Click()
    CheckBox9

    ActiveWorkbook.Sheets("Well Design Section").CheckBox9.Caption = "Incomplete "
    ActiveWorkbook.Sheets("Well Design Section").CheckBox9.Value = False
    Range("Q17").Value = "Incomplete"
End Sub
4

1 に答える 1

2

この問題を解決するには、CheckBox9_Click サブルーチンを次のように置き換えます。

Private Sub CheckBox9_Click()
    If CheckBox9.Value = True Then
        CheckBox9.Caption = "Done"
        ActiveWorkbook.Sheets("Well Planning Checklist").Tab.ColorIndex = 4
        'ActiveSheet.Tab.ColorIndex = 22
        Range("Q17").Value = CheckBox9.Caption
    Elseif Checkbox9.Caption <> "Incomplete" Then
        If LCase(Range("Q17").Value) = CheckBox9.Caption Then
            CheckBox9.Value = Not (CheckBox9.Value)
        Else
            CheckBox9.Value = Not (CheckBox9.Value)
        End If
    End If
End Sub

唯一の違いは、ElseステートメントがElseif. Caption <> "Incomplete",チェックボックスがクリックされた場合に最初の if が true になるため、 which が問題ない場合にのみ発生します。

于 2012-10-03T15:35:04.017 に答える