在Excel VBA中不僅可以使用程序本身內(nèi)置的函數(shù)(如工作表函數(shù)或VBA函數(shù)),還可根據(jù)需求自定義函數(shù)以實現(xiàn)數(shù)據(jù)處理的要求。
1. 在如圖的成績表中,每項成績占總成績的25%,據(jù)此要計算出每項(平時、小考、期中、期末)的百分比成績。

2. 在Excel中可以直接引用單元格作參數(shù)寫出如圖的公式,然后計算出每位學(xué)生各項成績的百分比。

3. 在VBA中,我們也可以自定義一個函數(shù)來實現(xiàn)以上的公式計算。
打開Visual Basic,添加一個模塊和函數(shù)(Function,與過程Sub-End Sub原理是相同的),稱之為“計算成績”。

Function 計算成績()
End Function
4. 設(shè)自定義函數(shù)的參數(shù)為x,令函數(shù)等于參數(shù)乘以0.25,相當(dāng)于在Excel表中通過單元格引用來進(jìn)行公式計算。

Function 計算成績()
計算成績 = x * 0.25
End Function
5. 回到Excel工作表中,在H2單元格中輸入“=計算成績(D2)”,回車即可得到相應(yīng)的結(jié)果。

6. 我們同樣也可以在VBA中通過使用循環(huán)與上面自定義的函數(shù)來計算出所有項目的結(jié)果。

Sub 成績計算()
Dim i as Integer
For i = 2 to 17
? Range("H" & i) = 計算成績(Range("D" & i))
Next
End Sub
以上案例僅用于演示,更多實際應(yīng)用請根據(jù)需求進(jìn)行相應(yīng)的調(diào)整。
喜歡的朋友請多多關(guān)注,感謝支持!