我写了个代码,目标功能是:
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

解决方案 »

  1.   

    after2008 = (VBA.Date - #1/1/2008#) \ 365
    改成
    after2008 = year(now)-2008但是工龄只从2008开始吗?不如改成对应的入厂年份
    另外单实现计算功能好象用函数就可以实现
      

  2.   

    具体工龄在H5那列已经自动计算出来了。
    另外,按你这改了运行时还是跟原来的一样错误:“运行时错误‘1004’  应用程序定义或对象定义错误”,点击“调试”,它就指在“gongLing = Worksheets("Sheet1").Range(gongLingRange).Value ”这一行。
    是不是要把gongLingRange定义一下?这个怎么定义啊?
      

  3.   

     NianJiaNew ("H5")