【发布时间】:2013-07-26 08:48:45
【问题描述】:
我是 Visual Basics 的新手(到目前为止 2 天),我做过的唯一其他编程是 MATlab。
我试图让程序在 Excel 的不同列中打印不同的数字,具体取决于是否选中了用户表单中的复选框。总共有 26 个复选框 - 以及一些文本框 - 我正在尝试使用 For Each Control 循环来遍历所有复选框。
我查看了一些教程和一些论坛,但是当我尝试运行测试时,代码不起作用。更具体地说,没有错误出现,但“测试是否有效?”不在任何地方打印。
Private Sub Add_Button_Click()
Dim Ctrl As Control
For Each Ctrl In DataInput.Controls
If TypeName(Ctrl) = "Checkbox" Then
If Ctrl.Value = True Then
Sheets("Data").Range("A1") = "Testing if it Works?"
End If
End If
Next
End Sub
我遵循与我遇到的所有其他论坛或教程相同的设置,但似乎没有发生任何事情。任何建议表示赞赏。
【问题讨论】:
-
不管下面的答案我认为你代码的唯一问题是将一个
if statement更改为:If TypeName(Ctrl) = "CheckBox" Then。If statement区分大小写... -
KazJaw 可能是对的,我实际上错过了这是在用户表单中完成的。我将控件放在用户表单之外,这使它与众不同。
标签: excel checkbox foreach userform vba