【问题标题】:For Loops in VBA with the index in the variable name [duplicate]VBA中的For循环,变量名中的索引[重复]
【发布时间】:2016-05-13 11:09:39
【问题描述】:

我正在使用 VBA 为 SolidWorks 编写宏,由于这更像是一个语法问题,我想我会在这里问它。

所以我写的宏使用了 16 个复选框,分别命名为 CheckBox1、CheckBox2、... CheckBox16。

我厌倦了这样做(下面的代码)但出现错误,因为编译器说没有定义变量名称“CheckBoxi”。

For i = 0 To 16

    If CheckBoxi.Value Then
        'Do Something
    End If

Next For

有什么方法可以解决这个问题,我真的不想输入 16 个这样的语句,因为“做某事”位包含相当多的代码。通过修复,我的意思是把它放在一个 for 循环中。谢谢!

【问题讨论】:

  • 用户表单上有这些复选框吗?
  • 感谢@JohnColeman,我对 excel 感到困惑!
  • @AlexK 因为 Solidworks 不是 Access,所以这绝不是重复的。如果复选框在一般用户窗体上,那么肯定是重复的,但如果 SolidWorks 允许嵌入控件,那么它可能需要一个解决 Solidworks 对象模型细节的答案。
  • @JohnColeman 是的,这是用户表单。是的,我知道为什么这看起来像重复,但我不明白如何使用建议示例中的代码并使其适应我的情况。例如,此处发布的问题的答案使用这行代码:Public Sub TextBoxNames(ByRef pfrm As Form)
  • @JohnColeman 哇,我真的很难格式化这条评论。无论如何,我不知道那行代码是什么意思,在 VBA 帮助中查找“By Ref”和“Controls”并没有产生任何有用的信息。

标签: vba solidworks


【解决方案1】:

me.controls("Checkbox" & I).value Me 将是包含形式。此外,您的循环从 0 开始,但您的帖子说 1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2017-08-05
    • 1970-01-01
    • 2013-06-24
    相关资源
    最近更新 更多