Excel VBA表单checkbox

嗨,我是新的Excel VBA,需要别人的帮助。 以下是我正在寻找的:

如果选中某个未链接的(form)checkbox(topleftcell?),那么它下面的某些checkbox(.offset?)将被closures(如果它们不是)

我不能使用单元格名称,因为上面的相同代码将应用于一堆列。

这是我有点

Set aaa = ActiveSheet.CheckBoxes(Application.Caller) With aaa.TopLeftCell If aaa.Value = 1 Then rsp = MsgBox("Check boxes below?", 4) If rsp = vbYes Then certain checkboxes(.offset?) below will be unchecked & .offset(0,0).value= "na" 

假设您的checkbox的位置如下图所示。 我故意没有调整他们。

在这里输入图像说明

好的,我们将使用一个小窍门。 右键单击第column 1所有checkbox,然后单击Format Control 。 接下来转到“ Alt Text选项卡并键入1 。 对于第2列checkbox,在Alt textinput2 。 对所有15列重复此操作。

在这里输入图像说明

现在将下面的macros分配给所有顶部的checkbox。

 Sub CheckBox_Click() Dim shp As Shape, MainShp As Shape Dim Alttext As String '~~> Get the checkbox which called the macro Set MainShp = ActiveSheet.Shapes(Application.Caller) '~~> Get it's alternate text Alttext = MainShp.AlternativeText '~~> Loop through all checkboxes except the checkbox which called it '~~> and check for their alt text For Each shp In ActiveSheet.Shapes If shp.Name <> MainShp.Name And shp.AlternativeText = Alttext Then '~~> If the top checkbox is checked then set the rest as checked If MainShp.OLEFormat.Object.Value = 1 Then shp.OLEFormat.Object.Value = 1 Else shp.OLEFormat.Object.Value = 0 End If End If Next End Sub 

现在,当你点击最上面的checkbox时,它将检查下面的所有checkbox与顶端checkbox具有相同的Alt text