【发布时间】:2017-06-21 17:32:46
【问题描述】:
如何在 vba 代码中重复 if 函数 大家好,我在表单上使用 if 创建了一个命令行。但是我一遍又一遍地写它有困难。有没有适当的方法来简化这篇文章?
If UserForm1.checkbox15.Value = True Then
UserForm2.textbox1.enable = True
UserForm2.textbox1.BackColor = RGB(200, 200, 200)
Else
UserForm2.textbox1.enable = True
UserForm2.textbox1.BackColor = RGB(255, 255, 255)
End If
If UserForm1.checkbox16.Value = True Then
UserForm2.textbox2.enable = True
UserForm2.textbox2.BackColor = RGB(200, 200, 200)
Else
UserForm2.textbox2.enable = True
UserForm2.textbox2.BackColor = RGB(255, 255, 255)
End If
If UserForm1.checkbox17.Value = True Then
UserForm2.textbox3.enable = True
UserForm2.textbox3.BackColor = RGB(200, 200, 200)
Else
UserForm2.textbox3.enable = True
UserForm2.textbox3.BackColor = RGB(255, 255, 255)
End If
If UserForm1.checkbox18.Value = True Then
UserForm2.textbox4.enable = True
UserForm2.textbox4.BackColor = RGB(200, 200, 200)
Else
UserForm2.textbox4.enable = True
UserForm2.textbox4.BackColor = RGB(255, 255, 255)
End If
.... .... .... 到 textbox660 ...
【问题讨论】:
-
这是不可读的,请格式化您的代码以便于理解。
-
我打算为你格式化你的代码,直到我看到你决定在这里粘贴的未格式化的混乱。请edit您的帖子并至少努力正确格式化。事实上,这不过是代码转储混乱。
-
抱歉,我无法发布代码。连续拒绝。我在记事本++中编写的代码,然后我将其粘贴到浏览器中。每次我编辑时都会以某种方式被拒绝..
-
我要冒昧地提出建议,如果您有一个包含 660 个复选框(并且可能有很多文本框)的表单,您可能需要完全重新设计应用程序。 可能 这样做(例如,通过参数化函数或子例程等),但你在这里尝试做什么不是很清楚......
-
我创建了一个映射,其中 1 行代表 1 个主复选框。每行有 22 个复选框。总共有 30 行主复选框。当我尝试时,结果证明应用程序运行顺利。然后我制作另一个表格,用于从之前的表格中获取值。它只是一个复选框,我将其替换为一个文本框,该文本框将填写映射的书面值。所以如果包含该复选框的表单为真,那么下面表单上的文本框可用于值的内容...
标签: vba loops iif-function