滿意答案
好評(píng)率:0%
按ALT + F11打開VBA編輯器,新建一個(gè)模塊,然后把下面內(nèi)容復(fù)制粘貼進(jìn)去:
Function Sum2(Value As Range) As Integer
If Value.Count = 1 Then
Sum2 = 0
Dim Str As String
Str = Replace(Value.Value, " ", "")
Dim i As Integer
For i = 1 To Len(Str)
Sum2 = Sum2 + Int(Mid(Str, i, 1))
Next
End If
End Function
函數(shù)名為Sum2,調(diào)用方法:在某需要顯示結(jié)果的單元格輸入公式"=Sum2(引用單元格)".
目前此自定義函數(shù)只能引用一個(gè)單元格,引用單元格內(nèi)的內(nèi)容只能輸入數(shù)字或空格,如果包含了數(shù)字和空格以外的內(nèi)容,將返回"值錯(cuò)誤(#VALUE)"錯(cuò)誤.
提問人的追問 2009-06-20 11:19
能不能給解釋一個(gè),本人對(duì)VBA多少知道哪么一點(diǎn)點(diǎn)。希望給說一說哪一句是干什么的,我用著也好用,也能用個(gè)明白,
回答人的補(bǔ)充 2009-06-20 11:24
Function Sum2(Value As Range) As Integer '定義函數(shù)名和引用類型及返回類型
If Value.Count = 1 Then '判斷如果引用范圍只有一個(gè)單元格才進(jìn)行計(jì)算
Sum2 = 0 '初始函數(shù)值
Dim Str As String '建立一個(gè)臨時(shí)字串變量用來保存引用單元格內(nèi)容和盡心下一步處理
Str = Replace(Value.Value, " ", "") '將單元格空格去掉
Dim i As Integer
For i = 1 To Len(Str) '循環(huán)計(jì)算每個(gè)位數(shù)相加的值
Sum2 = Sum2 + Int(Mid(Str, i, 1)) '相加
Next
End If
End Function
提問人的追問 2009-06-20 11:36
你好,你看能不能這樣呀,分開來弄,第一步定義一個(gè)函數(shù),或引用本身的函數(shù),去除空格后放到另一格中,第二步在把這個(gè)去除空格后的數(shù)每個(gè)位相加在放到另外一個(gè)單元格中,這樣的話我好進(jìn)一步處理。我先謝謝了。
回答人的補(bǔ)充 2009-06-20 11:46
Function Sum2(Value As Range, T As Integer) As Integer '定義函數(shù)名和引用類型及返回類型
If Value.Count = 1 Then '判斷如果引用范圍只有一個(gè)單元格才進(jìn)行計(jì)算
Sum2 = 0 '初始函數(shù)值
Dim Str As String '建立一個(gè)臨時(shí)字串變量用來保存引用單元格內(nèi)容和盡心下一步處理
If T = 0 Then
Str = Replace(Value.Value, " ", "") '將單元格空格去掉
Sum2 = Int(Str)
ElseIf T = 1 Then
Str = Replace(Value.Value, " ", "") '將單元格空格去掉
Dim i As Integer
For i = 1 To Len(Str) '循環(huán)計(jì)算每個(gè)位數(shù)相加的值
Sum2 = Sum2 + Int(Mid(Str, i, 1)) '相加
Next
End If
End If
End Function
用了一個(gè)標(biāo)識(shí)參數(shù)來告訴函數(shù)返回的值.Sum2(引用單元格,標(biāo)識(shí)).當(dāng)標(biāo)識(shí)參數(shù)填0的時(shí)候返回去除空格的內(nèi)容,當(dāng)標(biāo)識(shí)填1的時(shí)候返回相加的值.你可以在不同的單元格中填入函數(shù)用標(biāo)識(shí)來確定要返回的值`
提問人的追問 2009-06-20 11:58
你這個(gè)是把和放到一個(gè)單元格中去了,也就是最后結(jié)果,我還想要中間的哪個(gè)去除空格后的結(jié)果,讓他顯示到一個(gè)單元格中
回答人的補(bǔ)充 2009-06-20 11:59
那你就在那個(gè)單元格中輸入同樣的函數(shù)同樣的引用內(nèi)容,然后在第二個(gè)參數(shù)輸入0
回答人的補(bǔ)充 2009-06-20 12:05
如下圖
評(píng)價(jià)答案
-
您已經(jīng)評(píng)價(jià)過!
好:0
-
您已經(jīng)評(píng)價(jià)過!
不好:0
小街
回答采納率:57.1% 2009-06-20 10:57
呵呵,沒用你的,不過還是要謝謝你,幾乎是在你的基礎(chǔ)上修改了一下,好短就成了。