《VBA代碼解決方案》這套教程是我最早推出的教程,目前已經(jīng)是第二版修訂了。這套教程定位于入門后的提高,在學(xué)習(xí)這套教程過(guò)程中,側(cè)重點(diǎn)是要理解及掌握我的“積木編程”思想。要靈活運(yùn)用教程中的實(shí)例像搭積木一下把自己喜歡的代碼擺好。
這套教程共三冊(cè),一百四十七講,內(nèi)容覆蓋較廣,也是初級(jí)和中級(jí)間的過(guò)度教程,改版后的內(nèi)容主要是提供程序源碼文件及代碼修正為32位和64位兼用代碼。今后一段時(shí)間會(huì)給大家陸續(xù)推出。今日的內(nèi)容是第49講:工作表函數(shù)SUM
大家好,我們今日繼續(xù)講解VBA代碼解決方案的第49講內(nèi)容:VBA中SUM函數(shù)的利用方法。
對(duì)多個(gè)單元格求和,是統(tǒng)計(jì)工作中非常普遍的工作, SUM函數(shù)及其衍生的函數(shù),在統(tǒng)計(jì)工作中起著舉足輕重的作用,如果把這個(gè)函數(shù)利用好了,對(duì)自己的工作是非常方便的,今日我在VBA中就此函數(shù)的利用再次加以講解。
在對(duì)工作表的單元格區(qū)域進(jìn)行求和計(jì)算時(shí),使用工作表Sum函數(shù)比使用VBA代碼遍歷單元格進(jìn)行累加求和效率要高得多,我們?cè)谑煜ち嘶镜拇a規(guī)則后,就要把重點(diǎn)放在優(yōu)化程序上,這點(diǎn)非常重要,在一般的簡(jiǎn)單運(yùn)算中或許體會(huì)的不是很深,在數(shù)據(jù)庫(kù)的操作中這點(diǎn)非常的明顯。SUM函數(shù)就是優(yōu)化程序的一個(gè)方法。
我們看下面的代碼:
1)求單元格區(qū)域A1:H10的和
Sub mynz_49_1() '49 VBA代碼中工作表函數(shù)SUM的利用方法
Dim rng As Range
Dim d As Double
Set rng = Range('A1:H10')
d = Application.WorksheetFunction.Sum(rng)
MsgBox rng.Address(0, 0) & '單元格的和為' & d
End Sub
2) 求單元格區(qū)域A1:H10正數(shù)的和
Sub mynz_49_2() '49 VBA代碼中工作表函數(shù)SUM的利用方法
Dim rng, rngs As Range
Dim d As Double
Set rngs = Range('A1:H10')
For Each rng In rngs
If rng > 0 Then d = d rng
Next
MsgBox rngs.Address(0, 0) & '單元格正數(shù)的和為' & d
End Sub
代碼窗口:
代碼解析:mynz_49_1過(guò)程調(diào)用工作表Sum函數(shù)對(duì)工作表的單元格區(qū)域'A1:H10'進(jìn)行求和計(jì)算。
l在VBA中調(diào)用工作表函數(shù)需要在工作表函數(shù)前加上WorksheetFunction屬性。應(yīng)用于Application對(duì)象的WorksheetFunction屬性返回WorksheetFunction對(duì)象,作為VBA中調(diào)用工作表函數(shù)的容器,在實(shí)際應(yīng)用中可省略Application對(duì)象識(shí)別符。
1)在實(shí)際的應(yīng)用中,我們不僅要對(duì)指定的單元格區(qū)域進(jìn)行簡(jiǎn)單的求和,還要利用上判斷的條件,這個(gè)時(shí)候,如果只是利用WorksheetFunction的sum函數(shù)就有些吃力了,我們?yōu)榇巳耘f回到原始的單元格判斷上來(lái),如上面的mynz_49_2的過(guò)程。
下面我們實(shí)測(cè)一下上面的兩個(gè)過(guò)程,首先運(yùn)行的是mynz_49_1過(guò)程:
再次運(yùn)行的mynz_49_2過(guò)程:這次的運(yùn)行中就去除了負(fù)數(shù)部分。
所以在具體的應(yīng)用中不要機(jī)械,要實(shí)際問(wèn)題實(shí)際分析。
今日內(nèi)容回向:
1 sum 函數(shù)在VBA中是如何應(yīng)用的?
2 完成條件求和的思路是怎么樣的?(注意:條件求和最好還是利用VBA先對(duì)的單元格判斷然后再進(jìn)行相應(yīng)的處理)
3 如果要是判斷上述區(qū)域是否為數(shù)字呢?該如何進(jìn)行判斷?
本講內(nèi)容參考程序文件:VBA代碼解決方案修訂(49-98).xlsm
我20多年的VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面的各個(gè)教程中:
【分享成果,隨喜正能量】人生無(wú)懼,無(wú)論榮華富貴,還是低賤窮困,我們都要從容不迫,學(xué)會(huì)積極的看待人生,緣來(lái)了,則聚;緣去了,則散。。
聯(lián)系客服