Excel·VBA自定義函數(shù)按季度分?jǐn)傎M(fèi)用

根據(jù)待分?jǐn)傎M(fèi)用總額纵诞、費(fèi)用起止日期搭独、待分?jǐn)倸w屬季度悼凑,計(jì)算該季度應(yīng)分?jǐn)傎M(fèi)用晦炊。

調(diào)用《Excel·VBA自定義函數(shù)計(jì)算每月費(fèi)用標(biāo)準(zhǔn)》計(jì)算每月費(fèi)用標(biāo)準(zhǔn),再調(diào)用《Excel·VBA自定義函數(shù)計(jì)算日期期間費(fèi)用》計(jì)算該季度應(yīng)分?jǐn)傎M(fèi)用

注意:因保留2位小數(shù)嗅绸,經(jīng)monthcost脾猛、datecost計(jì)算后,分?jǐn)傎M(fèi)用的合計(jì)數(shù)與原待分?jǐn)傎M(fèi)用存在一定差額
Function costshare(cost1 As Double, startdate1 As Date, enddate1 As Date, quarter1 As Integer) As Double
    '函數(shù)定義costshare(待分?jǐn)傎M(fèi)用鱼鸠,費(fèi)用開始日期猛拴,費(fèi)用結(jié)束日期,季度數(shù))蚀狰,計(jì)算該季度應(yīng)分?jǐn)偟馁M(fèi)用
    '季度數(shù):取值范圍 [1,++] 愉昆,計(jì)數(shù)從開始日期當(dāng)年的1季度起,即 1 為開始日期當(dāng)年1季度麻蹋,表示1季度應(yīng)分?jǐn)傎M(fèi)用跛溉,以此類推
    
    Dim cost As Double, startdate As Date, enddate As Date, quarter As Integer
    Dim month_cost As Double, date_quarter1 As Date, date_quarter2 As Date
    cost = cost1
    startdate = startdate1
    enddate = enddate1
    quarter = quarter1
    '以上為定義參數(shù)變量和賦值,否則無法調(diào)用其他模塊定義的函數(shù)
    
    month_cost = monthcost.monthcost(cost, startdate, enddate)   '計(jì)算每月標(biāo)準(zhǔn)費(fèi)用扮授,調(diào)用其他模塊的函數(shù)芳室,句點(diǎn)法
    date_quarter1 = DateSerial(Year(startdate), quarter * 3 - 2, 1)   '待分?jǐn)偧径瘸醯娜掌?    date_quarter2 = DateSerial(Year(startdate), quarter * 3 + 1, 0)   '待分?jǐn)偧径饶┑娜掌?    
    If DateDiff("d", enddate, date_quarter1) > 0 Or DateDiff("d", date_quarter2, startdate) > 0 Then
        '起止日期與待輸出季度初末日期沒有交集
        costshare = 0
    ElseIf DateDiff("d", date_quarter1, startdate) >= 0 And DateDiff("d", enddate, date_quarter2) >= 0 Then
        '起止日期都在待輸出季度初末日期內(nèi)
        costshare = cost
    ElseIf DateDiff("d", date_quarter1, startdate) >= 0 And DateDiff("d", date_quarter2, enddate) >= 0 Then
        '待輸出季度僅季末日期在起止日期內(nèi)
        costshare = datecost.datecost(startdate, date_quarter2, month_cost)
    ElseIf DateDiff("d", startdate, date_quarter1) >= 0 And DateDiff("d", date_quarter2, enddate) >= 0 Then
        '待輸出季度初末都在起止日期內(nèi)
        costshare = month_cost * 3
    ElseIf DateDiff("d", startdate, date_quarter1) >= 0 And DateDiff("d", enddate, date_quarter2) >= 0 Then
        '待輸出季度僅季初在起止日期內(nèi)
        costshare = datecost.datecost(date_quarter1, enddate, month_cost)
    End If
    
End Function

Sub costshare幫助信息()
    '運(yùn)行一次后該幫助信息生效
    
    Dim 函數(shù)名稱 As String        '函數(shù)名稱
    Dim 函數(shù)描述 As String        '函數(shù)描述
    Dim 參數(shù)個(gè)數(shù)(4) As String     '函數(shù)參數(shù)描述 數(shù)組 個(gè)數(shù)
    
    函數(shù)名稱 = "costshare"
    函數(shù)描述 = "根據(jù)待分?jǐn)傎M(fèi)用總額、費(fèi)用起止日期刹勃、待分?jǐn)倸w屬季度堪侯,計(jì)算該季度應(yīng)分?jǐn)傎M(fèi)用"
    參數(shù)個(gè)數(shù)(0) = "參數(shù)1:待分?jǐn)傎M(fèi)用,數(shù)字格式"
    參數(shù)個(gè)數(shù)(1) = "參數(shù)2:費(fèi)用開始日期荔仁,日期格式"
    參數(shù)個(gè)數(shù)(2) = "參數(shù)3:費(fèi)用結(jié)束日期伍宦,日期格式"
    參數(shù)個(gè)數(shù)(3) = "參數(shù)4:待分?jǐn)倸w屬季度,自開始日期當(dāng)年度1季度開始計(jì)數(shù)乏梁,數(shù)字格式"
    
    Call Application.MacroOptions(macro:=函數(shù)名稱, Description:=函數(shù)描述, ArgumentDescriptions:=參數(shù)個(gè)數(shù))
    
End Sub
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末次洼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掌呜,更是在濱河造成了極大的恐慌滓玖,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件质蕉,死亡現(xiàn)場(chǎng)離奇詭異势篡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)模暗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門禁悠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兑宇,你說我怎么就攤上這事碍侦。” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵瓷产,是天一觀的道長站玄。 經(jīng)常有香客問我,道長濒旦,這世上最難降的妖魔是什么株旷? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮尔邓,結(jié)果婚禮上晾剖,老公的妹妹穿的比我還像新娘。我一直安慰自己梯嗽,他們只是感情好齿尽,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灯节,像睡著了一般循头。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炎疆,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天贷岸,我揣著相機(jī)與錄音,去河邊找鬼磷雇。 笑死偿警,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唯笙。 我是一名探鬼主播螟蒸,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼崩掘!你這毒婦竟也來了七嫌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤苞慢,失蹤者是張志新(化名)和其女友劉穎诵原,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挽放,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绍赛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辑畦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吗蚌。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖纯出,靈堂內(nèi)的尸體忽然破棺而出蚯妇,到底是詐尸還是另有隱情敷燎,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布箩言,位于F島的核電站硬贯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏陨收。R本人自食惡果不足惜澄成,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畏吓。 院中可真熱鬧,春花似錦卫漫、人聲如沸菲饼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宏悦。三九已至,卻和暖如春包吝,著一層夾襖步出監(jiān)牢的瞬間饼煞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工诗越, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留砖瞧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓嚷狞,卻偏偏與公主長得像矩乐,于是被迫代替她去往敵國和親是己。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容