EXCEL自定义函数学习与分享(持续更新)

先贴一个类型声明符表: 

EXCEL自定义函数学习与分享(持续更新)_第1张图片

1.iPower

求一个值的指定次方数的结果 

'求次方iPower(源值,次方数)
Function iPower(iVal, Pw) As Long'声明一个自定义函数,函数名为iPower,iVal 为源值,Pw为次方数
    Application.Volatile '自动刷新计算结果
    iPower = 1            '先给iPower赋值为1,此为次方的基数
    If Pw > 0 Then        '如果Pw大于0则
        iPower = iPower(iVal, Pw - 1) * iVal
        'iPower等于iPwer(源值的pw-1次方)*源值,这个里面要细细口味, Pw其实就是迭代次数
    End If
End Function

示例:

EXCEL自定义函数学习与分享(持续更新)_第2张图片

2.sliCaSN

返回指定日程表的开始时间和结束时间

'本函数得出指定日程表的开始时间和结束时间sliCaSN(日程表名称)
Function sliCaSN(sName As String) As String 'sName为日程表的名字
    Application.Volatile '自动刷新计算结果
    
    Dim startDay     '开始日期
    Dim endDay      '结束日期
    Dim iDay        '日期差
    
    With ActiveWorkbook.SlicerCaches("NativeTimeline_" & sName) '调用数据并赋值
        startDay = .TimelineState.StartDate
        endDay = .TimelineState.EndDate
    End With
    
    iDay = endDay - startDay '计算日期差
    
    If iDay Then '开始日期不等于结束日期
        If Format(startDay, "yy") = Format(endDay, "yy") Then '年相等
            endDay = Format(endDay, "m月d日")
            
            If Format(startDay, "mm") = Format(endDay, "mm") Then '年月相等
                endDay = Format(endDay, "d日")
    
            End If
            
        Else '年不相等
            endDay = Format(endDay, "yyyy年m月d日")
            
        End If
        
            sliCaSN = Format(startDay, "yyyy年m月d日") & "-" & endDay
    Else '年月日相等
        sliCaSN = Format(startDay, "yyyy年m月d日")
    End If
    
End Function

 

 

示例:

EXCEL自定义函数学习与分享(持续更新)_第3张图片EXCEL自定义函数学习与分享(持续更新)_第4张图片EXCEL自定义函数学习与分享(持续更新)_第5张图片

 

你可能感兴趣的:(EXCEL自定义函数学习与分享(持续更新))