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 text
input2
。 对所有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
。