Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!

[通知] 统计VBA学习小组正式组第六课(第七讲)的积分帖之作业上交贴(第8周)

  [复制链接]
发表于 2012-2-16 10:34 | 显示全部楼层
Sub 单元格填充()
  With Sheets("sheet3")
     .Range("A1") = 100
     .Range("A3") = 900
     .Range("A5") = 100
     .Range("A8") = 4500
  End With
End Sub
-----------------------------------------------------------
Function geshui(gz As Double) As Double
    Dim sde As Double
    sde = gz - 3500
    If sde <= 0 Then
        geshui = 0
    ElseIf sde <= 1500 Then
        geshui = sde * 0.03
    ElseIf sde <= 4500 Then
        geshui = sde * 0.1 - 105
    ElseIf sde <= 9000 Then
        geshui = sde * 0.2 - 555
    ElseIf sde <= 35000 Then
        geshui = sde * 0.25 - 1005
    ElseIf sde <= 55000 Then
        geshui = sde * 0.3 - 2755
    ElseIf sde <= 80000 Then
        geshui = sde * 0.35 - 5505
    Else
        geshui = sde * 0.45 - 13505
    End If

End Function
-----------------------------------------------------
请批改,谢谢!

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案正确,very good~~

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-2-16 10:49 | 显示全部楼层
C13:xm258
第1题:
Sub 单元格填充()
    With Sheets("sheet3")
    .Range("A1") = 100
    .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
    End With
End Sub
第2题:
Function GeShui(gz As Range)
    Select Case gz
    Case Is <= 3500
     GeShui = 0
    Case Is <= 3500 + 1500
     GeShui = Round((gz - 3500) * 0.03, 2)
    Case Is <= 3500 + 4500
     GeShui = Round((gz - 3500) * 0.05 - 105, 2)
    Case Is <= 3500 + 9000
     GeShui = Round((gz - 3500) * 0.2 - 555, 2)
    Case Is <= 3500 + 35000
     GeShui = Round((gz - 3500) * 0.25 - 1005, 2)
    Case Is <= 3500 + 55000
     GeShui = Round((gz - 3500) * 0.3 - 2755, 2)
    Case Is <= 3500 + 80000
     GeShui = Round((gz - 3500) * 0.35 - 5505, 2)
    Case Is > 3500 + 80000
     GeShui = Round((gz - 3500) * 0.45 - 13505, 2)
    End Select
End Function

点评

结果不正确,6000的工资税只有20?  发表于 2012-2-20 21:13
回复

使用道具 举报

发表于 2012-2-16 10:52 | 显示全部楼层
Sub 单元格填充()
With Sheets("sheet3")
    .Range("A1") = 100
    .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
End With
End Sub

Function GeShui(gz As Range)
    If (gz - 3500) <= 1500 Then
        GeShui = 0
    ElseIf (gz - 3500) <= 4500 Then
        GeShui = (gz - 3500) * (10 / 100) - 105
    ElseIf (gz - 3500) <= 9000 Then
        GeShui = (gz - 3500) * (20 / 100) - 555
    ElseIf (gz - 3500) <= 35000 Then
        GeShui = (gz - 3500) * (25 / 100) - 1005
    ElseIf (gz - 3500) <= 55000 Then
        GeShui = (gz - 3500) * (30 / 100) - 2755
    ElseIf (gz - 3500) <= 80000 Then
        GeShui = (gz - 3500) * (35 / 100) - 5505
    ElseIf (gz - 3500) > 80000 Then
        GeShui = (gz - 3500) * (45 / 100) - 13505
    End If
End Function

Function GeShu(gz As Range)
Dim Rg As Long
    Rg = (gz - 3500)
    If Rg <= 1500 Then
        GeShu = 0
    ElseIf Rg <= 4500 Then
        GeShu = (gz - 3500) * (10 / 100) - 105
    ElseIf Rg <= 9000 Then
        GeShu = (gz - 3500) * (20 / 100) - 555
    ElseIf Rg <= 35000 Then
        GeShu = (gz - 3500) * (25 / 100) - 1005
    ElseIf Rg <= 55000 Then
        GeShu = (gz - 3500) * (30 / 100) - 2755
    ElseIf Rg <= 80000 Then
        GeShu = (gz - 3500) * (35 / 100) - 5505
    ElseIf Rg > 80000 Then
        GeShu = (gz - 3500) * (45 / 100) - 13505
    End If
End Function

点评

结果不正确,3580的工资个税你的结果是0,大于3500的应该都交个税的  发表于 2012-2-20 21:15
回复

使用道具 举报

发表于 2012-2-16 11:36 | 显示全部楼层
Sub 单元格填充()
With Sheets("sheet3")
    .Range("A1") = 100
    .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
End Sub

Function GeShui(gz As Range)   'gz为引用单元格中的工资数额
    Dim n As Double
    n = gz - 3500
    Select Case n
        Case Is <= 1500
            GeShui = n * 0.03
        Case Is <= 4500
            GeShui = n * 0.1 - 105
        Case Is <= 9000
            GeShui = n * 0.2 - 555
        Case Is <= 35000
            GeShui = n * 0.25 - 1005
        Case Is <= 55000
            GeShui = n * 0.3 - 2755
        Case Is <= 80000
            GeShui = n * 0.35 - 5505
        Case Else
            GeShui = n * 0.45 - 13505
    End Select
End Function

点评

工资=300时,个税为负?  发表于 2012-2-20 21:16
回复

使用道具 举报

发表于 2012-2-16 11:54 | 显示全部楼层
本帖最后由 无聊的疯子 于 2012-2-16 11:54 编辑

A03:无聊的疯子


  1. Sub 单元格填充()    '第一题
  2.   With Sheets("sheet3")
  3.       .Range("A1") = 100
  4.       .Range("A3") = 900
  5.       .Range("A5") = 100
  6.       .Range("A8") = 4500
  7.     End With
  8. End Sub

  9. Function GeShui(Gz As Range)    '注gz为引用单元格中的工资数额
  10. Dim SY As Double, SS As Integer
  11.   Select Case Gz - 3500
  12.     Case Is <= 0
  13.       SY = 1
  14.     Case Is <= 1500
  15.       SY = 0.03
  16.       SS = 0
  17.     Case Is <= 4500
  18.       SY = 0.1
  19.       SS = 105
  20.     Case Is <= 9000
  21.       SY = 0.2
  22.       SS = 555
  23.     Case Is <= 35000
  24.       SY = 0.25
  25.       SS = 1005
  26.     Case Is <= 55000
  27.       SY = 0.3
  28.       SS = 2755
  29.     Case Is <= 8000
  30.       SY = 0.35
  31.       SS = 5505
  32.     Case Else
  33.       SY = 0.4
  34.       SS = 13505
  35.   End Select
  36.   GeShui = (Gz - 3500) * SY - SS
  37.   If SY = 1 Then GeShui = 0
  38. End Function
复制代码

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案正确,very good~~

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 11:55 | 显示全部楼层
  1. Sub 单元格填充()
  2.     With Sheets("sheet3")
  3.         .Range("A1") = 100
  4.         .Range("A3") = 900
  5.         .Range("A5") = 100
  6.         .Range("A8") = 4500
  7.     End With
  8. End Sub
复制代码

  1. Function GeShui(gz)
  2.     Select Case gz
  3.         Case Is <= 3500
  4.             GeShui = 0
  5.         Case Is <= 3500 + 1500
  6.             GeShui = (gz - 3500) * 0.03 - 0
  7.         Case Is <= 3500 + 4500
  8.             GeShui = (gz - 3500) * 0.1 - 105
  9.         Case Is <= 3500 + 9000
  10.             GeShui = (gz - 3500) * 0.2 - 555
  11.         Case Is <= 3500 + 35000
  12.             GeShui = (gz - 3500) * 0.25 - 1005
  13.         Case Is <= 3500 + 55000
  14.             GeShui = (gz - 3500) * 0.3 - 2755
  15.         Case Is <= 3500 + 80000
  16.             GeShui = (gz - 3500) * 0.35 - 5505
  17.         Case Else
  18.             GeShui = (gz - 3500) * 0.45 - 13505
  19.         End Select
  20. End Function
复制代码

  1. Function GeShui(gz)
  2.     yj = gz - 3500
  3.     Select Case yj
  4.         Case Is <= 0
  5.             GeShui = 0
  6.         Case Is <= 1500
  7.             GeShui = yj * 0.03 - 0
  8.         Case Is <= 4500
  9.             GeShui = yj * 0.1 - 105
  10.         Case Is <= 9000
  11.             GeShui = yj * 0.2 - 555
  12.         Case Is <= 35000
  13.             GeShui = yj * 0.25 - 1005
  14.         Case Is <= 55000
  15.             GeShui = yj * 0.3 - 2755
  16.         Case Is <= 80000
  17.             GeShui = yj * 0.35 - 5505
  18.         Case Else
  19.             GeShui = yj * 0.45 - 13505
  20.         End Select
  21. End Function
复制代码


评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案正确,very good~~

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 12:02 | 显示全部楼层
本帖最后由 我不知道呀 于 2012-2-20 21:52 编辑

第一题:
Sub 单元格填充()
With Sheets("sheet3")
   .Range("A1") = 100
   .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
    End With
End Sub

第二题:
Function GeShui(gz)
    If gz <= 1500 Then
        GeShui = (gz - 3500) * 0.03
    ElseIf gz <= 4500 Then
        GeShui = (gz - 3500) * 0.1 - 105
    ElseIf gz <= 9000 Then
        GeShui = (gz - 3500) * 0.2 - 555
    ElseIf gz <= 35000 Then
        GeShui = (gz - 3500) * 0.25 - 1005
    ElseIf gz <= 55000 Then
        GeShui = (gz - 3500) * 0.3 - 2755
    ElseIf gz <= 80000 Then
        GeShui = (gz - 3500) * 0.35 - 5505
    ElseIf gz > 80000 Then
        GeShui = (gz - 3500) * 0.45 - 13505
    End If
End Function

Function GeShui2(gz)
    Select Case gz
    Case Is <= 1500
        GeShui2 = (gz - 3500) * 0.03
    Case Is <= 4500
        GeShui2 = (gz - 3500) * 0.1 - 105
    Case Is <= 9000
        GeShui2 = (gz - 3500) * 0.2 - 555
    Case Is <= 35000
        GeShui2 = (gz - 3500) * 0.25 - 1005
    Case Is <= 55000
        GeShui2 = (gz - 3500) * 0.3 - 2755
    Case Is <= 80000
        GeShui2 = (gz - 3500) * 0.35 - 5505
    Case Is > 80000
        GeShui2 = (gz - 3500) * 0.45 - 13505
    End Select
End Function
订正后:
Function GeShui(gz)   '注gz为引用单元格中的工资数额
    gz = gz / 100 - 35
    Select Case gz
        Case 0 To 15
            GeShui = gz * 3
        Case 15 To 45
            GeShui = gz * 10 - 105
        Case 45 To 90
            GeShui = gz * 20 - 555
        Case 90 To 350
            GeShui = gz * 25 - 1005
        Case 350 To 550
            GeShui = gz * 30 - 2755
        Case 550 To 800
            GeShui = gz * 35 - 5505
        Case Is > 800
            GeShui = gz * 45 - 13505
    End Select
End Function

点评

结果不正确,个税怎么都成负的了?  发表于 2012-2-20 21:17
回复

使用道具 举报

发表于 2012-2-16 12:41 | 显示全部楼层
Sub 单元格填充()
With Sheets("sheet3")
.Range("A1") = 100
.Range("A3") = 900
.Range("A5") = 100
.Range("A8") = 4500
End With
End Sub



Function GeShui(gz As Range)
Select Case gz
Case Is <= 3500
GeShui = 0
Case Is <= 5000
GeShui = (gz - 3500) * 0.03
Case Is <= 8000
GeShui = (gz - 3500) * 0.1 - 105
Case Is <= 12500
GeShui = (gz - 3500) * 0.2 - 555
Case Is <= 38500
GeShui = (gz - 3500) * 0.25 - 1005
Case Is <= 58500
GeShui = (gz - 3500) * 0.3 - 2755
Case Is <= 83500
GeShui = (gz - 3500) * 0.35 - 5505
Case Is > 83500
GeShui = (gz - 3500) * 0.45 - 13505
End Select
End Function

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案正确,very good~~

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 12:58 | 显示全部楼层
第一题:把下面的代码用With语句来表示。         
SUB 单元格填充()
   WITH  SHEETS("SHEET3")
                   .Range("A1") = 100
                   .Range("A3") = 900
                   .Range("A5") = 100
                   .Range("A8") = 4500

       END WITH
   END SUB
第二题:根据下面的条件,编写计算个人所得税的自定义函数GeShui

个人所得税的计算公式
   =(工资-3500)*税率-速算扣除数

下面是个税税率表和速算扣除数表。其中全月应纳税所得额=工资-3500

全月应纳税所得额税率速算扣除数(元)
全月应纳税额不超过1500元3%0
全月应纳税额超过1500元至4500元10%105
全月应纳税额超过4500元至9000元20%555
全月应纳税额超过9000元至35000元25%1005
全月应纳税额超过35000元至55000元30%2755
全月应纳税额超过55000元至80000元35%5505
全月应纳税额超过80000元45%13505


例如:单元格A2中工资为6000。如果人工计算应该为
     全月应纳税所得额=6000-3500=2500
    从上表中2500对应的税率是10%,速算扣除数为105,所以工资6000的个税应该为
    =(6000-3500)*10%-105
要求用自定函数完成以上功能
Function GeShui(gz)   ‘注gz为引用单元格中的工资数额
  IF   gz-3500<1500 THEN
          GeShui=(gz-3500)*3%
   ELSEIF gz-3500<4500 THEN
        GeShui=(gz-3500)*10%-105
   ELSEIF gz-3500<9000 THEN
        GeShui=(gz-3500)*20%-555
   ELSEIF gz-3500<35000 THEN
        GeShui=(gz-3500)*25%-1005
   ELSEIF gz-3500<55000 THEN
       GeShui=(gz-3500)*30%-2775
   ELSEIF gz-3500<80000 THEN
        GeShui=(gz-3500)*35%-5505
  ELSEIF gz-3500>80000 THEN
       GeShui=(gz-3500)*45%-13505
End Function


点评

第2题结果不对  发表于 2012-2-20 21:19
结果不正确  发表于 2012-2-20 21:18
回复

使用道具 举报

发表于 2012-2-16 13:22 | 显示全部楼层
第一题
Sub 单元格填充()
    With Sheets("sheet3")
       .Range("A1") = 100
       .Range("A3") = 900
       .Range("A5") = 100
       .Range("A8") = 4500
    End With
End Sub

第二题
Function geshui(gz As Single)
   Select Case gz
      Case Is < 3500
         geshui = 0
      Case Is < 5000
         geshui = (gz - 3500) * 0.03
      Case Is < 8000
         geshui = (gz - 3500) * 0.1 - 105
      Case Is < 12500
         geshui = (gz - 3500) * 0.2 - 555
      Case Is < 38500
         geshui = (gz - 3500) * 0.25 - 1005
      Case Is < 58500
         geshui = (gz - 3500) * 0.3 - 2755
      Case Is < 83500
         geshui = (gz - 3500) * 0.35 - 5505
      Case Else
         geshui = (gz - 3500) * 0.45 - 13505
   End Select
End Function

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案正确,very good~~

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-8 10:12 , Processed in 0.206547 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表