我已经创建了userform,所以我将用它来描述我的问题。
我想接受四个用户输入(产品成本,销售单位数,退回单位数和每单位修复成本)并计算6件事情,如总收入(产品成本x单位数)已退货的总成本(产品成本×退回的单位数)。
我将如何编写代码?
此处的Userform图片:http://imgur.com/a/qc3Kk
答案 0 :(得分:0)
所以,这是我对这个解决方案的看法。这不是一个非常复杂的创建计划。总的来说,它是一个UserForm,遵循您在图像中的设计,其中一段代码执行计算,一段代码确保文本框中输入的值是数字。界面是标签和文本框的组合:
每个文本框都有一个代码,用于评估输入的值是否为numerica,如果不是则提醒您。每个例程都使用IsNumeric函数来查看文本框中是否有值。 AfterUpdate事件确保例程仅在您输入内容后运行。您可以选择单独为每个文本框设置例程,也可以在每个文本框引用的模块中编写更集成的例程。为了这个例子:
Private Sub txtCost_AfterUpdate()
With UserForm1
With .txtCost
If Not IsNumeric(.Value) Or .Value = "" Then
MsgBox "Please enter a numeric value only!"
End If
End With
End With
End Sub
Private Sub txtReturned_AfterUpdate()
With UserForm1
With .txtReturned
If Not IsNumeric(.Value) Or .Value = "" Then
MsgBox "Please ensure you enter only numeric values"
End If
End With
End With
End Sub
Private Sub txtTotalFix_AfterUpdate()
With UserForm1
With .txtTotalFix
If Not IsNumeric(.Value) Or .Value = "" Then
MsgBox "Please ensure you enter only numeric values"
End If
End With
End With
End Sub
Private Sub txtUnits_AfterUpdate()
With UserForm1
With .txtUnits
If Not IsNumeric(.Value) Or .Value = "" Then
MsgBox "Please ensure you enter only numeric values"
End If
End With
End With
End Sub
例行的肉和土豆也不复杂。我直接使用每个文本框的值来吐出计算的值。或者,您可以选择使用变量(我已经将x十进制分解为双倍,因为您可能处理的是非常大的数字,但在此示例中未使用它)。该例程存在于Module1中,并检查所有值是否具有相同IsNumeric函数的数字并运行公式,提醒您是否其中任何一个为空或不是数字。我没有肯定你如何计算储蓄或你的YES或NO标准,所以你可能需要调整它。
Sub QA_prog()
Dim x As Double
With UserForm1
If IsNumeric(.txtCost.Value) And IsNumeric(.txtUnits.Value) _
And IsNumeric(.txtReturned.Value) And IsNumeric(.txtTotalFix.Value) Then
.lblEarn.Caption = .txtCost.Value * .txtUnits.Value
.lblTRC.Caption = .txtCost * .txtTotalFix
.lblProfit = .lblEarn.Caption - .lblTRC.Caption
.lblCostFix = .txtReturned * .txtTotalFix
.lblTE.Caption = .lblProfit - .lblCostFix
.lblSave.Caption = .lblTRC + .lblCostFix
If .lblSave.Caption > 5000 Then
.txtYorN.Text = "NO"
Else
.txtYorN.Text = "YES"
End If
Else
MsgBox "Double check your values!"
End If
End With
End Sub
最后,按钮。退出按钮使用卸载关闭程序:
Private Sub cmdExit_Click()
Unload UserForm1
End Sub
计算按钮调用QA Sub例程:
Private Sub cmdCalc_Click()
Module1.QA_prog
End Sub
要触发该程序,您只需在电子表格中添加一个按钮,然后在其代码窗口中输入“UserForm1.show
”即可激活该程序。