我写了个代码,目标功能是:
10年内的,每年可以休5天,10~20年的每年可以休10天,超过20年的每年可以休15天。。不休就一直累加下去。。
但有错,想请教一下怎么修改,谢谢!Function NianJiaNew(gongLingRange)
gongLing = Worksheets("Sheet1").Range(gongLingRange).Value
'计算2008年(新年假政策)后的工作年限。
Dim after2008 As Integer
after2008 = (VBA.Date - #1/1/2008#) \ 365
Debug.Print after2008
'工龄1~9年者,每年可休5天年假;
'工龄10~19者,每年可休10天年假;
'工龄20年以上者,每年可休15天年假。
Select Case gongLing
Case Is < 1
result = 0
Case Is < 10
result = after2008 * 5
Case Is < 20
result = after2008 * 10
Case Else
result = after2008 * 15
End Select
Debug.Print result
NianJiaNew = result
End FunctionSub Main()
NianJiaNew (H5)
End Sub
10年内的,每年可以休5天,10~20年的每年可以休10天,超过20年的每年可以休15天。。不休就一直累加下去。。
但有错,想请教一下怎么修改,谢谢!Function NianJiaNew(gongLingRange)
gongLing = Worksheets("Sheet1").Range(gongLingRange).Value
'计算2008年(新年假政策)后的工作年限。
Dim after2008 As Integer
after2008 = (VBA.Date - #1/1/2008#) \ 365
Debug.Print after2008
'工龄1~9年者,每年可休5天年假;
'工龄10~19者,每年可休10天年假;
'工龄20年以上者,每年可休15天年假。
Select Case gongLing
Case Is < 1
result = 0
Case Is < 10
result = after2008 * 5
Case Is < 20
result = after2008 * 10
Case Else
result = after2008 * 15
End Select
Debug.Print result
NianJiaNew = result
End FunctionSub Main()
NianJiaNew (H5)
End Sub
改成
after2008 = year(now)-2008但是工龄只从2008开始吗?不如改成对应的入厂年份
另外单实现计算功能好象用函数就可以实现
另外,按你这改了运行时还是跟原来的一样错误:“运行时错误‘1004’ 应用程序定义或对象定义错误”,点击“调试”,它就指在“gongLing = Worksheets("Sheet1").Range(gongLingRange).Value ”这一行。
是不是要把gongLingRange定义一下?这个怎么定义啊?