这是从前一个线程开始的,我想在每次单击任何复选框时执行代码。 jsotola非常友好,可以帮助我定义触发事件。以下是该主题的链接:Event triggered by ANY checkbox click
现在,我正在尝试修改类模块中的ChkBoxGroup_Click()Sub以满足更具体的需求。我已经在一个单独的工作簿中测试了代码作为一个独立的Sub,我可以用F5手动执行,它完全按照我的希望工作。由于我希望它与复选框点击一起运行,我想我可以将它粘贴到类模块中,但我收到一个错误,我希望有人可以提供帮助。
这是我在类模块中所拥有的:“ChkClass” 选项明确
Public WithEvents ChkBoxGroup As MSForms.CheckBox
Private Sub ChkBoxGroup_Change()
Debug.Print "ChkBoxGroup_Change"
End Sub
Private Sub ChkBoxGroup_Click()
Dim findrow As Long, findrow2 As Long
findrow = Range("B:B").Find("Feature Styles", Range("B1")).Row
findrow2 = Range("B:B").Find("Feature Options", Range("B" & findrow)).Row
For i = findrow To findrow2
If Range("B" & i).Value = Range("O" & i).Value Then
Range("C" & i).Value = True
Else: Range("C" & i).Value = False
End If
Next i
End Sub
当我单击一个复选框时,我收到一个错误框,上面写着“编译错误:变量未定义”。它还突出了这一行中的“i”:
For i = findrow To findrow2
它在我的另一个工作表中作为独立子工作很好,如下所示:
Sub FeatureStyles_TorF()
Dim findrow As Long, findrow2 As Long
findrow = Range("B:B").Find("Feature Styles", Range("B1")).Row
findrow2 = Range("B:B").Find("Feature Options", Range("B" & findrow)).Row
For i = findrow To findrow2
If Range("B" & i).Value = Range("O" & i).Value Then
Range("C" & i).Value = True
Else: Range("C" & i).Value = False
End If
Next i
End Sub
为什么我收到错误的任何想法?
答案 0 :(得分:0)
如上所述处理错误,它说你没有定义i,所以让我们来定义它。 变化:
Dim findrow As Long, findrow2 As Long
要:
Dim findrow As Long, findrow2 As Long, i as long