Excel 使用复选框锁定和解锁指定的单元格

Excel 使用复选框锁定和解锁指定的单元格,excel,vba,Excel,Vba,如果单击复选框,我需要一个简单的VBA代码来锁定单元格(或单元格范围) e、 g-如果我单击复选框,单元格范围(例如A1:A20)应解锁,然后我可以输入一些值;如果取消选中该复选框,则单元格应被锁定 有人可以帮我编写代码。这会给我带来一个错误“无法设置Range类的锁定属性”试试这个(使用ActiveX复选框)): 如果您显示代码,我们可能会提供帮助。专用子复选框1_Click()Dim wb As Workbook Dim ws As Worksheet Dim myRange As Rang

如果单击复选框,我需要一个简单的VBA代码来锁定单元格(或单元格范围)

e、 g-如果我单击复选框,单元格范围(例如A1:A20)应解锁,然后我可以输入一些值;如果取消选中该复选框,则单元格应被锁定

有人可以帮我编写代码。这会给我带来一个错误“无法设置Range类的锁定属性”

试试这个(使用
ActiveX复选框)
):


如果您显示代码,我们可能会提供帮助。专用子复选框1_Click()Dim wb As Workbook Dim ws As Worksheet Dim myRange As Range Set wb=thishworkbook Set ws=wb.Sheets(“Sheet1”)Set myRange=ws.Range(“A1:A20”)'如果CheckBox1.Value=True,那么myRange.Locked=False,否则myRange.Locked=True结束,如果我们无法理解在注释中发布代码的内容太多。请编辑您的问题并将代码放在那里。锁定前是否尝试取消保护?@FaneDuru这是代码专用子复选框1_Click()Dim wb As Workbook Dim ws As Worksheet Dim myRange As Range Set wb=此工作簿Set ws=wb.Sheets(“Sheet1”)'Set myRange=ws.Range(“A1:A20”)'如果CheckBox1.Value=True,那么myRange.Locked=False,否则myRange.Locked=True结束If–是否回答了您的问题?谢谢Alex,但它的作用正好相反,我想说的是范围A1:A20被锁定,然后如果我点击复选框,单元格或单元格区域应该被解锁,一旦我再次取消选中该复选框,数据应该被锁定不可编辑删除
not
逻辑。用户2553598:你的问题与你现在所说的相反…@Alexp:现在可以了,谢谢你,我可以提出更多要求吗?范围应该是灰色(锁定),如果点击复选框,应该变成白色(解锁)…就像这样谢谢你今天真的帮了大忙:)
Private Sub CheckBox1_Click()
    Dim rng As Range

    Set rng = Worksheets("Sheet1").Range("A1:A20")

    ActiveSheet.Unprotect ""

    If Me.CheckBox1.Value Then
        rng.Locked = False
        rng.Interior.Color = RGB(255, 255, 255)
    Else
        rng.Locked = True
        rng.Interior.Color = RGB(220, 220, 220)
    End If

    ActiveSheet.Protect ""
End Sub