【发布时间】:2018-02-23 21:34:56
【问题描述】:
我正在编写一个带有宏用户表单的 Excel 表格,以替换我们工作场所的纸质系统。它是一个有两个框架的简单形式;一个包含 3 个选项按钮,另一个包含一个文本框,然后还有 3 个选项。我写的代码是这样的..
Dim Option1A As String
If Frame1.OptionButton1Low Then
Option1A = "Low"
ElseIf Frame1.OptionButton1Mid Then
Option1A = "Medium"
ElseIf Frame1.OptionButton1High Then
Option1A = "High"
End If
Dim Risk1 As String
Risk1 = TextBox1.Value
If Option1A = "Medium" And Risk1 = "" Then
MsgBox ("Please enter a description of your risk mitigation")
ElseIf Option1A = "High" And Risk1 = "" Then
MsgBox ("Please enter a description of your risk mitigation")
End If
Dim Option1B As String
If FrameF1.OptionButton1FLow Then
Option1B = "Low"
ElseIf FrameF1.OptionButton1FMid Then
Option1B = "Medium"
ElseIf FrameF1.OptionButton1FHigh Then
Option1B = "High"
End If
ActiveCell.Offset(g, 15).Value = Option1A
ActiveCell.Offset(g, 16).Value = Risk1
ActiveCell.Offset(g, 17).Value = Option1B
简单吧?这正是我想要的,问题是我在这段代码中有 1 对框架,用户窗体上还有 17 对。所有的文本框、框架、选项按钮和字符串都是按顺序命名的。所以现在我可以再复制粘贴 17 次,得到我想要的结果。
我想知道是否有办法编写一个 Do While 循环来更改数字,因此 Option1A 变为 Option2A、Option3A 和 OptionButton1FLow 变为 OptionButton2FLow 等。基本上将代码中的所有数字 1 更改为 x 值。
我在研究中没有找到任何建议,并且开始认为这是不可能的,
非常感谢任何见解,
提前干杯,
肖恩
【问题讨论】:
-
对不起,糟糕的标题,我正在尝试任何单词组合来搜索!
-
您的意思是您总共有 18 对或框架(即 36 个),其中每个包含 3 个选项按钮?
g的值是多少?我的意思是,我猜你想插入 17 行数据,因为你有 17 对,对吧? -
为什么不把这段代码包装到过程中,并用适当的控件作为参数调用它 18 次?
-
Foxfire - 总共 18 帧没有,是的,g 的值用于稍后将其插入工作簿的代码
-
五。 Kisel - 这可能比我的技能水平略高,所以我现在开始阅读,谢谢你的提示!