Excel精英培训网

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

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

  [复制链接]
发表于 2012-2-16 20:55 | 显示全部楼层
本帖最后由 ls 于 2012-2-16 21:34 编辑

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 3500.01 To 5000
    GeShui = 0.03 * (gz - 3500) - 0
    Case 5000.01 To 8000
    GeShui = 0.1 * (gz - 3500) - 105
    Case 8000.01 To 12500
    GeShui = 0.2 * (gz - 3500) - 555
    Case 12500.01 To 38500
    GeShui = 0.25 * (gz - 3500) - 1005
    Case 38500.01 To 58500
    GeShui = 0.3 * (gz - 3500) - 2755
    Case 58500.01 To 83500
    GeShui = 0.35 * (gz - 3500) - 5505
    Case Else
    GeShui = 0.45 * (gz - 3500) - 13505
    End Select
End Function

评分

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

查看全部评分

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

使用道具 举报

发表于 2012-2-16 20:58 | 显示全部楼层
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)   ‘注gz为引用单元格中的工资数额
Select Case Range("A2")
  Case Is <= 5000
    Geshui =(gz-3500)*0.03
  Case Is <= 8000
   Geshui =(gz-3500)*0.1-105
  Case Is <=125000
    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

点评

第二题返回结果不正确,重新做一下  发表于 2012-2-20 21:40
回复

使用道具 举报

发表于 2012-2-16 20:59 | 显示全部楼层
  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)
  10.     Dim m%
  11.     m = gz - 3500
  12.     Select Case m
  13.     Case Is <= 1500
  14.         GeShui = m * 0.03
  15.     Case Is <= 4500
  16.         GeShui = m * 0.1 - 105
  17.     Case Is <= 9000
  18.         GeShui = m * 0.2 - 555
  19.     Case Is <= 35000
  20.         GeShui = m * 0.25 - 1005
  21.     Case Is <= 55000
  22.         GeShui = m * 0.3 - 2755
  23.     Case Is <= 80000
  24.         GeShui = m * 0.35 - 5505
  25.     Case Is > 80000
  26.         GeShui = m * 0.45 - 13505
  27.     End Select

  28. End Function

复制代码
回复

使用道具 举报

发表于 2012-2-16 21:02 | 显示全部楼层
  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)
  10.     Dim m%
  11.     m = gz - 3500
  12.     Select Case m
  13.     Case Is <= 1500
  14.         GeShui = m * 0.03
  15.     Case Is <= 4500
  16.         GeShui = m * 0.1 - 105
  17.     Case Is <= 9000
  18.         GeShui = m * 0.2 - 555
  19.     Case Is <= 35000
  20.         GeShui = m * 0.25 - 1005
  21.     Case Is <= 55000
  22.         GeShui = m * 0.3 - 2755
  23.     Case Is <= 80000
  24.         GeShui = m * 0.35 - 5505
  25.     Case Is > 80000
  26.         GeShui = m * 0.45 - 13505
  27.     End Select

  28. End Function

复制代码

点评

工资为300时,个税成了负数  发表于 2012-2-20 21:41
回复

使用道具 举报

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

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

点评

有点不太完善,个税是0时,显示成了-0  发表于 2012-2-20 21:41

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 答案基本正确

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 22:24 | 显示全部楼层
A09:byhdch
第一题答:
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 <= 0 Then
       GeShui = 0
    ElseIf gz - 3500 <= 1500 Then
       GeShui = (gz - 3500) * 0.03
    ElseIf gz - 3500 <= 4500 Then
       GeShui = (gz - 3500) * 0.1 - 105
    ElseIf gz - 3500 <= 9000 Then
       GeShui = (gz - 3500) * 0.2 - 555
    ElseIf gz - 3500 <= 35000 Then
       GeShui = (gz - 3500) * 0.25 - 1005
    ElseIf gz - 3500 <= 55000 Then
       GeShui = (gz - 3500) * 0.3 - 2750
    ElseIf gz - 3500 <= 80000 Then
       GeShui = (gz - 3500) * 0.35 - 5505
    ElseIf gz - 3500 > 80000 Then
       GeShui = (gz - 3500) * 0.45 - 13505
    End If
End Function

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 22:29 | 显示全部楼层
1.
Sub 使用WITH()
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)
If gz - 3500 <= 0 Then
geshui = 0
ElseIf gz - 3500 <= 1500 Then
geshui = (gz - 3500) * 0.03 - 0
ElseIf gz - 3500 <= 4500 Then
geshui = (gz - 3500) * 0.1 - 105
ElseIf gz - 3500 <= 9000 Then
geshui = (gz - 3500) * 0.2 - 555
ElseIf gz - 3500 <= 35000 Then
geshui = (gz - 3500) * 0.25 - 1005
ElseIf gz - 3500 <= 55000 Then
geshui = (gz - 3500) * 0.3 - 2755
ElseIf gz - 3500 <= 80000 Then
geshui = (gz - 3500) * 0.35 - 5505
ElseIf gz - 3500 > 80000 Then
geshui = (gz - 3500) * 0.45 - 13505
End If
End Function

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 22:58 | 显示全部楼层
B01:yiguo
第一题:
  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 As Range)
  2. If (gz - 3500) <= 0 Then
  3.      geshui = 0
  4.     ElseIf (gz - 3500) <= 1500 Then
  5.      geshui = (gz - 3500) * 0.03
  6.     ElseIf (gz - 3500) <= 4500 Then
  7.       geshui = (gz - 3500) * 0.1 - 105
  8.     ElseIf (gz - 3500) <= 9000 Then
  9.       geshui = (gz - 3500) * 0.2 - 555
  10.      ElseIf (gz - 3500) <= 35000 Then
  11.       geshui = (gz - 3500) * 0.25 - 1005
  12.      ElseIf (gz - 3500) <= 55000 Then
  13.       geshui = (gz - 3500) * 0.3 - 2755
  14.      ElseIf (gz - 3500) <= 80000 Then
  15.       geshui = (gz - 3500) * 0.35 - 5505
  16.      ElseIf (gz - 3500) > 80000 Then
  17.       geshui = (gz - 3500) * 0.45 - 13505
  18.     End If
  19. End Function
复制代码

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-2-16 23:27 | 显示全部楼层
F18:寂寞深水鱼
  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, Optional qz = 3500)
  2. If gz - qz <= 1500 Then
  3. GeShui = (gz - qz) * 0.03 - 0
  4. ElseIf gz - qz <= 4500 Then
  5. GeShui = (gz - qz) * 0.1 - 105
  6. ElseIf gz - qz <= 9000 Then
  7. GeShui = (gz - qz) * 0.2 - 555
  8. ElseIf gz - qz <= 35000 Then
  9. GeShui = (gz - qz) * 0.3 - 2755
  10. ElseIf gz - qz <= 80000 Then
  11. GeShui = (gz - qz) * 0.35 - 5505
  12. ElseIf gz - qz > 80000 Then
  13. GeShui = (gz - qz) * 0.45 - 13505
  14. End If
  15. End Function
复制代码

点评

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

使用道具 举报

发表于 2012-2-17 08:58 | 显示全部楼层
一缕忧兰 发表于 2012-2-16 10:34
A07:一缕忧兰
第一题
'使用With语句

补上第二题,用case的写法。

  1. Function GeShui3(gz As Long)   '注gz为引用单元格中的工资数额
  2. Dim y As Long  
  3. y = gz - 3500
  4. Select Case y
  5.     Case Is <= 0
  6.         GeShui3 = 0
  7.     Case Is <= 1500
  8.         GeShui3 = y * 0.03
  9.     Case Is <= 4500
  10.          GeShui3 = y * 0.1 - 105
  11.     Case Is <= 9000
  12.          GeShui3 = y * 0.2 - 555
  13.     Case Is <= 35000
  14.          GeShui3 = y * 0.25 - 1005
  15.     Case Is <= 55000
  16.          GeShui3 = y * 0.3 - 2755
  17.     Case Is <= 80000
  18.          GeShui3 = y * 0.35 - 5505
  19.     'Case Is > 80000
  20.          'GeShui3 = y * 0.45 - 13505
  21.     Case Else
  22.           GeShui3 = y * 0.45 - 13505
  23. End Select
  24. End Function
复制代码


第一题,改下。
应该是 With Sheets("sheet3")

评分

参与人数 1金币 +3 收起 理由
兰色幻想 + 3 很好,再奖励一下

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 09:27 , Processed in 0.234680 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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