Excel自定义函数
个人经验,如果用Excel表计算工资,用VBA自定义函数要比弄公式简单的多,直接用“=管理工资(张三)”完事,如果有多个角色,像管理、车间、后勤,再加个if呗。
附一个自己用的VBA参考:
Public Function ABC公司后勤考勤2021(name)
Dim 考勤天数, 考勤小时数, 日工资标准, 小时工资标准, 必须出勤天数 As Single
Dim 考勤表名, 标准表名 As String
Dim 月份数 As Integer
月份数 = ActiveSheet.Range("a1").Value
考勤表名 = 月份数 & "月考勤表"
标准表名 = 月份数 & "月工资标准"
考勤天数 = Application.VLookup(name, Worksheets(考勤表名).Range("b:h"), 2, False)
必须出勤天数 = Application.VLookup(name, Worksheets(标准表名).Range("q:s"), 2, False)
月工资标准 = Application.VLookup(name, Worksheets(标准表名).Range("q:s"), 3, False)
If 考勤天数 > 必须出勤天数 Then
ABC公司后勤考勤2021 = Application.Round(月工资标准, 0)
Else
ABC公司后勤考勤2021 = Application.Round(月工资标准 / 必须出勤天数 * 考勤天数, 0)
End If
End Function