用户窗体VBA代码用于命令按钮在文本框更改时运行子窗口

时间:2015-11-20 21:25:52

标签: excel-vba vba excel

所以在论坛中给我的前9行我不记得在哪里。但我建立在此基础上,现在我想使用命令按钮重新计算是否使用更改此子中列出的变量。

Private Sub txtWorked_Exit(ByVal Cancel As     MSForms.ReturnBoolean)
11 Dim OTRate       As Double
  OTRate = Me.txtHourlyRate * 1.5
If Me.txtWorked > 40 Then
  Me.txtBasePay.Value = Format(Me.txtHourlyRate.Value * 40, "$#,##0.00")
  Me.txtOvertime = Format((Me.txtWorked - 40) * OTRate, "$#,##0.00")
Else
  Me.txtOvertime.Value = "0"
  Me.txtBasePay.Value = Format(Me.txtHourlyRate.Value *    Me.txtWorked.Value, "$#,##0.00")
End If
Dim Gross, W2, MASSTax, FICA, Medi, Total, Depends, Feds As Double
  Gross = CDbl(txtBonus.Value) + CDbl(txtBasePay.Value) +       CDbl(txtOvertime.Value)
  W2 = txtClaim * 19
  Me.txtGrossPay.Value = Format(Gross, "$#,##0.00")
  FICA = Gross * 0.062
  Me.txtFICA.Value = Format(FICA, "$#,##0.00")
  Medi = Gross * 0.0145
  Me.txtMedicare.Value = Format(Medi, "$#,##0.00")
  MASSTax = (Gross - (FICA + Medi) - (W2 + 66)) * 0.0545
If chkMassTax = True Then
   Me.txtMATax.Value = Format(MASSTax, "$#,##0.00")
Else: Me.txtMATax.Value = "0.00"
End If
If Me.txtClaim.Value = 1 Then
   Depends = 76.8

ElseIf Me.txtClaim.Value = 2 Then
   Depends = 153.8

ElseIf Me.txtClaim.Value = 3 Then
   Depends = 230.7
Else
   Depends = 0
End If
   If (Gross - Depends) < 765 Then
   Feds = ((((Gross - Depends) - 222) * 0.15) + 17.8)
  Me.txtFedIncome.Value = Format(Feds, "$#,##.00")
ElseIf (Gross - Depends) > 764 Then
   Feds = ((((Gross - Depends) - 764) * 0.25) + 99.1)
   Me.txtFedIncome.Value = Format(Feds, "$#,##.00")
Else:
   Feds = 0
End If
   Total = (txtMATax) + (FICA) + (Medi) + (txtAdditional) + (Feds)
   Me.txtTotal.Value = Format(Total, "$#,##0.00")
   Me.txtNetPay.Value = Format(Gross - Total, "$#,##0.00")

End Sub
 Private Sub cmdReCalculate_Click()
  'This where I would lke code to start the sub "txtWorked_Exit" to run again."
 End Sub

1 个答案:

答案 0 :(得分:0)

您所要做的就是使用适当的参数调用子例程。

Private Sub cmdReCalculate_Click()
   txtWorked_Exit true
End Sub