如何将该属性分配给checkbox

嗨,我有一个checkbox和代码,如果我运行它显示错误。 请纠正这个错误。

Private Sub CheckBox1_Click() With Sheets("bom") If .CheckBox1.Value = True Then .Range("show_all_level") = "Yes" Else .Range("show_all_level") = "No" End If End With End Sub 

错误types:

在这里输入图像说明

尝试下面的代码,它应该处理你的“show_all_level” Name Range可能有的不同场景。

 Option Explicit Private Sub CheckBox1_Click() Dim Nm As Name Dim NmExist As Boolean Dim NameRng As Range ' loop through all Name Ranges in ThisWorkbook For Each Nm In ThisWorkbook.Names If Nm.Parent.Name Like "bom" Then '<-- check if name range parent (Sheet.Name) is "bom" MsgBox Nm.Name & " Name Range exists is sheet " & Chr(34) & Nm.Parent.Name & Chr(34) NmExist = True ' raise the flag >> Name exist in "bom" sheet Set NameRng = Nm.RefersToRange ' set the Range to the Name Range Exit For ElseIf Nm.Parent.CodeName Like "ThisWorkbook" Then '<-- check if name scope is "ThisWorkbook" MsgBox Nm.Name & " Name Range exists as WorkBook scope" NmExist = True ' raise the flag >> Name exist in Workbook scope Set NameRng = Nm.RefersToRange ' set the Range to the Name Range Exit For End If Next Nm ' verify that "show_all_level" name exist in "bom" sheet (or Workbook scope) If Not NmExist Then MsgBox Chr(34) & "show_all_level" & Chr(34) & "Name Range, doesn't exist in the desired sheet", vbCritical Exit Sub End If With Sheets("bom") If .CheckBox1.Value = True Then NameRng.Value = "Yes" Else NameRng.Value = "No" End If End With End Sub