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