1. 程式人生 > 其它 >VBA 2:range單元格物件、if函式過程控制、用if退出for迴圈,一鍵自動生成工資條,恢復工資單,個稅計算公式

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