VBA 2:range单元格对象、if函数过程控制、用if退出for循环,一键自动生成工资条,恢复工资单,个税计算公式


for 循环可以解决 VBA1 中 录制宏 中的使用相对引用  问题

 

1.根据条件判断 填入相应内容,并删除空值所在行
Sub bg2()

Dim i As Integer

For i = 2 To 200
'退出条件
If Range("a" & i) = "" Then Exit For



'判断性别,其中if then语句,then 后面必须换行,否则会出现 编译错误else没有if 报错
If Range("e" & i) = "男" Then
Range("f" & i) = "先生"
Else: Range("f" & i) = "女士"
End If

'判断专业
If Range("B" & i) = "理工" Then
Range("C" & i) = "LG"
ElseIf Range("B" & i) = "文科" Then
Range("C" & i) = "WK"
Else: Range("C" & i) = "CJ"
End If

'删除空白单元格所在行,对应EXCEL手动操作是选中单元格然后删除整行
If Range("d" & i) = "" Then
Range("d" & i).Select
Selection.EntireRow.Delete
i = i - 1
End If

Next

End Sub

 

2.一键自动生成工资条


Sub gzt()
'一键自动生成工资条
'空 是"",引号内无空格 if中的语句借鉴录制宏的操作
Dim i As Integer

For i = 3 To 2000 Step 2
If Range("a" & i) = "" Then Exit For
Rows("1:1").Select
Selection.Copy
Rows(i).Select
Selection.Insert Shift:=xlDown
Next

End Sub

 

3.由工资条一键恢复成工资表

Sub gzb()
'由工资条一键恢复成工资表
Dim i As Integer

For i = 3 To 2000
If Range("a" & i) = "" Then Exit For
Range("d" & i).Select
Selection.EntireRow.Delete
Next

End Sub

 

4.(旧)个税计算公式

Sub gs()
'个税计算公式
Dim i As Integer

For i = 2 To 2000
If Range("a" & i) = "" Then Exit For

If Range("c" & i) - 3500 <= 0 Then
Range("d" & i) = 0
ElseIf Range("c" & i) - 3500 <= 1500 And Range("c" & i) - 3500 > 0 Then
Range("d" & i) = (Range("c" & i) - 3500) * 0.03
ElseIf Range("c" & i) - 3500 <= 4500 And Range("c" & i) - 3500 > 1500 Then
Range("d" & i) = (Range("c" & i) - 3500) * 0.1 - 105
ElseIf Range("c" & i) - 3500 <= 9000 And Range("c" & i) - 3500 > 4500 Then
Range("d" & i) = (Range("c" & i) - 3500) * 0.2 - 555
ElseIf Range("c" & i) - 3500 <= 35000 And Range("c" & i) - 3500 > 9000 Then
Range("d" & i) = (Range("c" & i) - 3500) * 0.25 - 1005
ElseIf Range("c" & i) - 3500 <= 55000 And Range("c" & i) - 3500 > 35000 Then
Range("d" & i) = (Range("c" & i) - 3500) * 0.3 - 2755
ElseIf Range("c" & i) - 3500 <= 80000 And Range("c" & i) - 3500 > 55000 Then
Range("d" & i) = (Range("c" & i) - 3500) * 0.35 - 5505
Else: Range("d" & i) = (Range("c" & i) - 3500) * 0.45 - 13505

End If

Next


End Sub

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM