bynbyn
发表于 2012-2-16 13:43
Function Wgeshui(n,x)
IF x=1 then //由工资算个税的代码
If n<=80000 Then
If n>55000 Then
Wgeshui=(n-3500)*0.35-5505
End If
If n>35000 Then
Wgeshui=(n-3500)*0.3-2755
End If
If n>9000 Then
Wgeshui=(n-3500)*0.25-1005
End If
If n>4500 Then
Wgeshui=(n-3500)*0.2-555
End If
If n>1500 Then
Wgeshui=(n-3500)*0.1-105
End If
If n<=1500 Then
Wgeshui=(n-3500)*0.03
End If
Elseif n>8000 Then
Wgeshui=(n-3500)*0.45-13505
End If
elseIF x=2 then//由个税倒推工资的代码
If n<=21270 Then //超过55000元至80000元的个税(80000-3500)*0.35-5505=21270
If n>12695 Then//超过35000元至55000元的个税(55000-3500)*0.3-2755=12695
Wgeshui=(n+5505)/0.35+3500
End If
If n>6870Then//超过9000元至35000元的个税(35000-3500)*0.25-1005=6870
Wgeshui=(n+2755)/0.3+3500
End If
If n>545 Then//超过4500元至9000元的个税(9000-3500)*0.2-555=545
Wgeshui=(n+1005)/0.25+3500
End If
If n>205 Then//超过1500元至4500元的个税(4500-3500)*0.1+105=205
Wgeshui=(n+555)/0.2+3500
End If
If n>45 Then//不超过1500元的个税1500*0.03=45
Wgeshui=(n+105)/0.1+3500
End If
If n<45 Then
Wgeshui=n/0.03
End If
ElseIf
Wgeshui=(n+13505)/0.45+3500
End If
End IF
End function
jiahua1010
发表于 2012-2-16 13:55
Function Wgeshui(n, x)
If x = 1 Then
yj = n - 3500
Select Case yj
Case Is < -3500
MsgBox ("输入错误")
GoTo W_error:
Case Is <= 0
Wgeshui = 0
Case Is <= 1500
Wgeshui = yj * 0.03 - 0
Case Is <= 4500
Wgeshui = yj * 0.1 - 105
Case Is <= 9000
Wgeshui = yj * 0.2 - 555
Case Is <= 35000
Wgeshui = yj * 0.25 - 1005
Case Is <= 55000
Wgeshui = yj * 0.3 - 2755
Case Is <= 80000
Wgeshui = yj * 0.35 - 5505
Case Else
Wgeshui = yj * 0.45 - 13505
End Select
ElseIf x = 2 Then
Select Case n
Case Is < 0
MsgBox ("输入错误")
GoTo W_error:
Case Is = 0
MsgBox ("未缴税,工资<3500,具体数额未知")
GoTo W_error:
Case Is <= 45
yj = (n + 0) / 0.03
Case Is <= 345
yj = (n + 105) / 0.1
Case Is <= 1245
yj = (n + 555) / 0.2
Case Is <= 7745
yj = (n + 1005) / 0.25
Case Is <= 13745
yj = (n + 2755) / 0.3
Case Is <= 22495
yj = (n + 5505) / 0.35
Case Else
yj = (n + 13505) / 0.45
End Select
Wgeshui = yj + 3500
End If
W_error:
Exit Function
End Function
liuho1
发表于 2012-2-16 15:45
Function WgeShui(n, x)
If x = 1 Then
Select Case n
Case Is <= 3500
WgeShui = "不用纳税"
Case Is <= 5000
WgeShui = (n - 3500) * 0.03
Case Is <= 8000
WgeShui = (n - 3500) * 0.1 - 105
Case Is <= 12500
WgeShui = (n - 3500) * 0.2 - 555
Case Is <= 38500
WgeShui = (n - 3500) * 0.25 - 1005
Case Is <= 58500
WgeShui = (n - 3500) * 0.3 - 2755
Case Is <= 83500
WgeShui = (n - 3500) * 0.35 - 5505
Case Is > 83500
WgeShui = (n - 3500) * 0.45 - 13505
End Select
ElseIf x = 2 Then
Select Case n
Case Is = 0
WgeShui = "没超过3500"
Case Is <= 45
WgeShui = n / 0.03 + 3500
Case Is <= 345
WgeShui = (n + 105) / 0.1 + 3500
Case Is <= 1245
WgeShui = (n + 555) / 0.2 + 3500
Case Is <= 7745
WgeShui = (n + 1005) / 0.25 + 3500
Case Is <= 13745
WgeShui = (n + 2755) / 0.3 + 3500
Case Is <= 22495
WgeShui = (n + 5505) / 0.35 + 3500
Case Is > 22495
WgeShui = (n + 13505) / 0.45 + 3500
End Select
End If
End Function
Tristone
发表于 2012-2-16 15:47
本帖最后由 Tristone 于 2012-2-21 00:20 编辑
Function Wgeshui(n, x)
If x = 1 Then '由工资算个税的代码
If n > 0 And n <= 3500 Then
Wgeshui = 0
ElseIf n > 3500 And n <= 5000 Then
Wgeshui = (n - 3500) * 0.03
ElseIf n > 5000 And n <= 8000 Then
Wgeshui = (n - 3500) * 0.1 - 105
ElseIf n > 8000 And n <= 12500 Then
Wgeshui = (n - 3500) * 0.2 - 555
ElseIf n > 12500 And n <= 38500 Then
Wgeshui = (n - 3500) * 0.25 - 1005
ElseIf n > 38500 And n <= 58500 Then
Wgeshui = (n - 3500) * 0.3 - 2755
ElseIf n > 58500 And n <= 835000 Then
Wgeshui = (n - 3500) * 0.35 - 5505
ElseIf n > 83500 Then
Wgeshui = (n - 3500) * 0.4 - 13505
End If
ElseIf x = 2 Then '由个税倒推工资的代码
If n > 0 And n <= 45 Then
Wgeshui = n / 0.03 + 3500
ElseIf n > 45 And n <= 345 Then
Wgeshui = (n + 105) / 0.1 + 3500
ElseIf n > 345 And n <= 1245 Then
Wgeshui = (n + 555) / 0.2 + 3500
ElseIf n > 1245 And n <= 7745 Then
Wgeshui = (n + 1005) / 0.25 + 3500
ElseIf n > 7745 And n <= 13745 Then
Wgeshui = (n + 2755) / 0.3 + 3500
ElseIf n > 13745 And n <= 22495 Then
Wgeshui = (n + 5505) / 0.35 + 3500
ElseIf n > 22495 Then
Wgeshui = (n + 13505) / 0.4 + 3500
End If
End If
End Function
linch92413
发表于 2012-2-16 17:20
E05:linch92413交作业
vbamaster
发表于 2012-2-16 21:51
Function WGeShui(gz As Range, x As Integer)'注gz为引用单元格中的工资数额
Dim lShuoDeE As Long
lShuoDeE = gz - 3500
If x = 1 Then
If lShuoDeE <= 0 Then
WGeShui = 0
ElseIf lShuoDeE <= 1500 Then
WGeShui = lShuoDeE * 0.03
ElseIf lShuoDeE > 1500 And lShuoDeE <= 4500 Then
WGeShui = lShuoDeE * 0.1 - 105
ElseIf lShuoDeE > 4500 And lShuoDeE <= 9000 Then
WGeShui = lShuoDeE * 0.2 - 555
ElseIf lShuoDeE > 9000 And lShuoDeE <= 35000 Then
WGeShui = lShuoDeE * 0.25 - 1005
ElseIf lShuoDeE > 35000 And lShuoDeE <= 55000 Then
WGeShui = lShuoDeE * 0.3 - 2755
ElseIf lShuoDeE > 55000 And lShuoDeE <= 80000 Then
WGeShui = lShuoDeE * 0.35 - 5505
ElseIf lShuoDeE > 80000 Then
WGeShui = lShuoDeE * 0.45 - 13505
End If
Else
If gz = 0 Then
WGeShui = gz / 0.03 + 3500
ElseIf gz > 0 And gz <= 105 Then
WGeShui = (gz + 105) / 0.1 + 3500
ElseIf gz > 105 And gz <= 555 Then
WGeShui = (gz + 555) / 0.2 + 3500
ElseIf gz > 555 And gz <= 1005 Then
WGeShui = (gz + 1005) / 0.25 + 3500
ElseIf gz > 1005 And gz <= 2755 Then
WGeShui = (gz + 2755) / 0.3 + 3500
ElseIf gz > 2755 And gz <= 5505 Then
WGeShui = (gz + 5505) / 0.35 + 3500
ElseIf gz > 5505 Then
WGeShui = (gz + 13505) / 0.45 + 3500
End If
End If
End Function
D05:vbamaster
happym8888
发表于 2012-2-17 00:45
本帖最后由 happym8888 于 2012-2-20 23:33 编辑
**** Hidden Message *****
sunjing-zxl
发表于 2012-2-17 09:48
E学委:sunjing-zxl
Function Wgeshui(x As Double, n As Long)
If n = 1 Then '正算
If x - 3500 <= 0 Then
Wgeshui = 0
ElseIf x - 3500 <= 1500 Then
Wgeshui = (x - 3500) * 3 / 100
ElseIf x - 3500 <= 4500 Then
Wgeshui = (x - 3500) * 10 / 100 - 105
ElseIf x - 3500 <= 9000 Then
Wgeshui = (x - 3500) * 20 / 100 - 555
ElseIf x - 3500 <= 35000 Then
Wgeshui = (x - 3500) * 25 / 100 - 1005
ElseIf x - 3500 <= 55000 Then
Wgeshui = (x - 3500) * 30 / 100 - 2755
ElseIf x - 3500 <= 80000 Then
Wgeshui = (x - 3500) * 35 / 100 - 5505
Else
Wgeshui = (x - 3500) * 45 / 100 - 13505
End If
ElseIf n = 2 Then '反算
If x = 0 Then
Wgeshui = "小于3500"
ElseIf x <= 1500 * 0.03 Then
Wgeshui = x / 0.03 + 3500
ElseIf x <= 4500 * 0.1 - 105 Then
Wgeshui = (x + 105) / 0.1 + 3500
ElseIf x <= 9000 * 0.2 - 555 Then
Wgeshui = (x + 555) / 0.2 + 3500
ElseIf x <= 35000 * 0.25 - 1005 Then
Wgeshui = (x + 1005) / 0.25 + 3500
ElseIf x <= 55000 * 0.3 - 2755 Then
Wgeshui = (x + 2755) / 0.3 + 3500
ElseIf x <= 80000 * 0.35 - 5505 Then
Wgeshui = (x + 5505) / 0.35 + 3500
Else
Wgeshui = (x + 13505) / 0.45 + 3500
End If
End If
End Function
开心rabbit
发表于 2012-2-17 09:57
本帖最后由 开心rabbit 于 2012-2-21 12:11 编辑
Function Wgeshui(n, x) '这里x即是开关
If x = 1 Then '由工资算个税的代码
If n<= 3500 Then
Wgeshui = 0
ElseIf n<= 5000 Then
Wgeshui = (n - 3500) * 0.03
ElseIf n<= 8000 Then
Wgeshui = (n - 3500) * 0.1 - 105
ElseIf n<= 12500 Then
Wgeshui = (n - 3500) * 0.2 - 555
ElseIf n<= 38500 Then
Wgeshui = (n - 3500) * 0.25 - 1005
ElseIf n<= 58500 Then
Wgeshui = (n - 3500) * 0.3 - 2755
ElseIf n<= 83500 Then
Wgeshui = (n - 3500) * 0.35 - 5505
ElseIf n> 83500 Then
Wgeshui = (n - 3500) * 0.45 - 13505
End If
ElseIf x = 2 Then '由个税倒推工资的代码
If n= 0 Then
Wgeshui = "工资额免征税"
ElseIf n<= 45 Then
Wgeshui = (n + 0) / 0.03 + 3500
ElseIf n<= 345 Then
Wgeshui = (n + 105) / 0.1 + 3500
ElseIf n<= 1245 Then
Wgeshui = (n + 555) / 0.2 + 3500
ElseIf n<= 7745 Then
Wgeshui = (n + 1005) / 0.25 + 3500
ElseIf n<= 13745 Then
Wgeshui = (n + 2755) / 0.3 + 3500
ElseIf n<= 22495 Then
Wgeshui = (n + 5505) / 0.35 + 3500
ElseIf n> 22495 Then
Wgeshui = (n + 13505) / 0.45 + 3500
End If
End If
End Function
从从容容
发表于 2012-2-17 10:51
Function Wgeshui(n, x)
If x = 1 Then
Dim I, S As Long
Dim M, J As Integer
I = n - 3500
Select Case I
Case Is <= 1500
M = 0.03
J = 0
Case Is <= 4500
M = 0.1
J = 105
Case Is <= 9000
M = 0.2
J = 555
Case Is <= 35000
M = 0.25
J = 1005
Case Is <= 55000
M = 0.3
J = 2755
Case Is <= 80000
M = 0.35
J = 5505
Case Is > 80000
M = 0.45
J = 13505
End Select
If I < 0 Then
MsgBox "你的工资还达不到起征点"
Else
Wgeshui = I * M - J
End If
ElseIf x = 2 Then
If n < 1500 * 0.03 Then
S = n / 0.03 + 3500
ElseIf n < 4500 * 0.1 - 105 Then
S = (n + 105) / 0.1 + 3500
ElseIf n < 9000 * 0.2 - 555 Then
S = (n + 555) / 0.2 + 3500
ElseIf n < 35000 * 0.25 - 1005 Then
S = (n + 1005) / 0.25 + 3500
ElseIf n < 55000 * 0.3 - 2755 Then
S = (n + 2755) / 0.3 + 3500
ElseIf n < 80000 * 0.35 - 5505 Then
S = (n + 5505) / 0.35 + 3500
Else
S = (n + 13505) / 0.45 + 3500
End If
If n = 0 Then
MsgBox "你的工资等于或小于起征点"
Else
Wgeshui = S
End If
End If
End Function