VB 应用程序
与之相关的是,我有一个表单,表单上按顺序有一个命令按钮和几个复选框。
如果有任何复选框=1或true,程序将调用一个子模块(在模块中),从用户那里获取特定的输入值
并将该输入写入excel工作表中的特定单元格。完成后,我希望程序返回到主窗体上的下一个复选框
即=1或true,并调用一个新的子模块(在模块中),从用户那里获取特定的输入/值。完成后,我希望程序返回到下一个复选框=true等
示例
sub Cmd_ahu_click()
如果Chkbox1=1,则在单独模块中找到
ahu_ choices1',当在模块中完成时,转到下一个elseif chkbox2语句
elseif chkbox2=1,然后在模块中找到<br>ahuU_choices2'Chkbox3状态<br>如果CHKBOK3=1,则在单独的模块中找到<br>ahu_
否则:无选项选择<br>结束子<br>任何帮助将不胜感激。<br>标记<br>
**** Hidden Message ***** 好吧,那不行……if..then..else将只按顺序计算项目,而忽略其余项目……但我怀疑你已经发现了这一点,或者你不会在这里发布……
如果你知道复选框的数量,你可以将每个复选框分为单独的if..then语句。
If Chkbox1.Value = True Then
'Do Stuff
End If
If Chkbox2.Value = True Then
'Do Stuff
End If
If Chkbox3.Value = True Then
'Do Stuff
End If
然而,更理想的方法可能是使用每个复选框的事件处理程序…
Private Sub Chkbox1_Click ()
If Chkbox1.Value = True Then
'Do Stuff
Else
'Undo Stuff
End If
End Sub
然后,您要做的是在应用程序启动时存储每个复选框的值,如果用户取消,则重置复选框的数值,从而执行撤消操作
还有其他方法,例如循环通过控件并基于控件名执行操作
'Put this code in a sub that is executed at form closing time, when it wasn't cancelled
Dim cntrl As Control
For Each cntrl In MyForm.Controls 'Change this to your own form name
Select Case cntrl.Name
Case "Chkbox1"
'Do Stuff
Case "Chkbox2"
'Do Stuff
Case "Chkbox3"
'Do Stuff
Case Else
'Do Stuff
End Select
Next cntrl
祝你好运 Keith,
感谢您的回复,请参阅附件
这是尝试用vb编写代码的初级阶段。对这个很陌生。谢谢你,马克。
页:
[1]