Excel精英培训网

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

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

  [复制链接]
发表于 2012-2-17 09:29 | 显示全部楼层
Sub 单元格填充()
With Sheets("sheet3")
    .Range("A1") = 100
    .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
End With
End Sub

Function GeShui(gz)   '注gz为引用单元格中的工资数额
  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
  Case Else
  End Select
End Function

评分

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

查看全部评分

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

使用道具 举报

发表于 2012-2-17 09:53 | 显示全部楼层
E学委:sunjing-zxl
  1. Sub 单元格填充()
  2.     With Sheets("sheets")
  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 Double)
  10.     If gz - 3500 <= 0 Then
  11.         GeShui = 0
  12.     ElseIf gz - 3500 <= 1500 Then
  13.         GeShui = (gz - 3500) * 3 / 100
  14.     ElseIf gz - 3500 <= 4500 Then
  15.         GeShui = (gz - 3500) * 10 / 100 - 105
  16.     ElseIf gz - 3500 <= 9000 Then
  17.         GeShui = (gz - 3500) * 20 / 100 - 555
  18.     ElseIf gz - 3500 <= 35000 Then
  19.         GeShui = (gz - 3500) * 25 / 100 - 1005
  20.     ElseIf gz - 3500 <= 55000 Then
  21.         GeShui = (gz - 3500) * 30 / 100 - 2755
  22.     ElseIf gz - 3500 <= 80000 Then
  23.         GeShui = (gz - 3500) * 35 / 100 - 5505
  24.     Else
  25.         GeShui = (gz - 3500) * 45 / 100 - 13505
  26.     End If
  27. End Function
复制代码

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-17 10:26 | 显示全部楼层
改成whit语句后为
Sub 单元格填充()
    With Sheets("sheet3")
         Range("A1") = 100
         Range("A3") = 900
         Range("A5") = 100
         Range("A8") = 4500
    End With
End Sub
我只会做第一题.
第二题的if语句我会做出来,但定义函数我就没办法了

点评

第一题正确,加油吧  发表于 2012-2-20 21:54
回复

使用道具 举报

发表于 2012-2-17 10:52 | 显示全部楼层
  第一题:把下面的代码用With语句来表示。         
Sub 单元格填充()
    Sheets("sheet3").Range("A1") = 100
    Sheets("sheet3").Range("A3") = 900
    Sheets("sheet3").Range("A5") = 100
    Sheets("sheet3").Range("A8") = 4500
End Sub
答案:
Sub 单元格填充()
With Sheets("SHEET3")
    .Range("A1") = 100
    .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
End With
End Sub


第二题:根据下面的条件,编写计算个人所得税的自定义函数GeShui
个人所得税的计算公式=(工资-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为引用单元格中的工资数额
  你的答案
End Function

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


评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-17 10:56 | 显示全部楼层
'第一题:把下面的代码用With语句来表示?
Sub 单元格填充作业()
    With Sheets("SHEET3")
        .Range("A1") = 100
        .Range("A3") = 900
        .Range("A5") = 100
        .Range("A8") = 4500
    End With
End Sub
'第二题:编写计算个人所得税的自定义函数GeShui
Function GeShui(gz As Range)
    If gz <= 3500 Then
        GeShui = 0
    ElseIf gz <= 5000 Then
        GeShui = (gz - 3500) * 0.03
    ElseIf gz <= 8000 Then
        GeShui = (gz - 3500) * 0.1 - 105
    ElseIf gz <= 12500 Then
        GeShui = (gz - 3500) * 0.2 - 555
    ElseIf gz <= 38500 Then
        GeShui = (gz - 3500) * 0.25 - 1005
    ElseIf gz <= 58500 Then
        GeShui = (gz - 3500) * 0.3 - 2755
    ElseIf gz <= 83500 Then
        GeShui = (gz - 3500) * 0.35 - 5505
    ElseIf gz > 83500 Then
        GeShui = (gz - 3500) * 0.45 - 13505
    End If
End Function

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-17 12:42 | 显示全部楼层
第一题答案:
Sub 单元格填充()
    With Sheets("sheet3")
        .Range("a1") = 100
        .Range("a3") = 900
        .Range("a5") = 100
        .Range("a8") = 4500
    End With
End Sub


第二题答案:
Function geshui(gz)
    Dim yns, sl, kcs
    yns = gz - 3500
    Select Case yns
        Case Is < 0
        MsgBox ("工资太低,不需要交税!")
        Exit Function
        Case Is < 1500
        sl = 0.03
        kcs = 0
        Case Is <= 4500
        sl = 0.1
        kcs = 105
        Case Is <= 9000
        sl = 0.2
        kcs = 555
        Case Is <= 35000
        sl = 0.25
        kcs = 1005
        Case Is <= 55000
        sl = 0.3
        kcs = 2755
        Case Is <= 80000
        sl = 0.35
        kcs = 5505
        Case Is > 80000
        sl = 0.45
        kcs = 13505
        Case Else
    End Select
    geshui = yns * sl - kcs
End Function

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-17 13:20 | 显示全部楼层
dsjohn 发表于 2012-2-16 10:52
Sub 单元格填充()
With Sheets("sheet3")
    .Range("A1") = 100


第二题有错,现修改
Function GeShui(gz As Range)
    If (gz - 3500) <= 0 Then
               GeShui = 0
    ElseIf (gz - 3500) <=1500 Then
               GeShui = (gz - 3500)*(3/100)
    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

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-17 13:44 | 显示全部楼层
交下作业了!
H:15 hactnet
Sub 单元格填充()
    With Sheets("sheet3")
      .Range("A1") = 100
      .Range("A3") = 900
      .Range("A5") = 100
      .Range("A8") = 4500
    End With
End Sub

Function GeShui(gz)
    Dim sdk, sl, kcs
    sdk = gz - 3500
  If sdk <= 0 Then
       sl = 0
       kcs = 0
    ElseIf sdk <= 1500 Then
       sl = 0.03
       kcs = 0
    ElseIf sdk <= 4500 Then
       sl = 0.1
       kcs = 105
    ElseIf sdk <= 9000 Then
       sl = 0.2
       kcs = 555
    ElseIf sdk <= 35000 Then
       sl = 0.25
       kcs = 1005
    ElseIf sdk <= 55000 Then
       sl = 0.3
       kcs = 2755
    ElseIf sdk <= 80000 Then
       sl = 0.35
       kcs = 5505
    ElseIf sdk > 80000 Then
       sl = 0.45
       kcs = 13505
  End If
    GeShui = (gz - 3500) * sl - kcs
End Function

点评

你的答案和前面一位同学的答案很雷同,写法和答案  发表于 2012-2-20 21:53

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案基本正确(税为0显示成了-0)

查看全部评分

回复

使用道具 举报

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

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-17 14:40 | 显示全部楼层
1、Sub 单元格填充()
  With Sheets("sheet3")
    .Range("A1") = 100
    .Range("A3") = 900
    .Range("A5") = 100
    .Range("A8") = 4500
  End With
2、Function GeShui(gz) '注gz为引用单元格中的工资数额
  Select Case gz - 3500
    Case Is <= 1500
      GeShui = (gz - 3500) * 0.03
    Case Is <= 4500
      GeShui = (gz - 3500) * 0.1 - 105
    Case Is <= 9000
      GeShui = (gz - 3500) * 0.2 - 555
    Case Is <= 35000
      GeShui = (gz - 3500) * 0.25 - 1005
    Case Is <= 55000
      GeShui = (gz - 3500) * 0.3 - 2755
    Case Is <= 80000
      GeShui = (gz - 3500) * 0.35 - 5505
    Case Else
      GeShui = (gz - 3500) * 0.45 - 13505
  End Select
End Function

点评

工资是300时个税成了负的  发表于 2012-2-20 21:56
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 03:56 , Processed in 0.268150 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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