按ALT + F11打開(kāi)VBA編輯器,新建一個(gè)模塊,然后把下面內容復制粘貼進(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
函數名為Sum2,調用方法:在某需要顯示結果的單元格輸入公式"=Sum2(引用單元格)".
目前此自定義函數只能引用一個(gè)單元格,引用單元格內的內容只能輸入數字或空格,如果包含了數字和空格以外的內容,將返回"值錯誤(#VALUE)"錯誤.
能不能給解釋一個(gè),本人對VBA多少知道哪么一點(diǎn)點(diǎn)。希望給說(shuō)一說(shuō)哪一句是干什么的,我用著(zhù)也好用,也能用個(gè)明白,
Function Sum2(Value As Range) As Integer '定義函數名和引用類(lèi)型及返回類(lèi)型
If Value.Count = 1 Then '判斷如果引用范圍只有一個(gè)單元格才進(jìn)行計算
Sum2 = 0 '初始函數值
Dim Str As String '建立一個(gè)臨時(shí)字串變量用來(lái)保存引用單元格內容和盡心下一步處理
Str = Replace(Value.Value, " ", "") '將單元格空格去掉
Dim i As Integer
For i = 1 To Len(Str) '循環(huán)計算每個(gè)位數相加的值
Sum2 = Sum2 + Int(Mid(Str, i, 1)) '相加
Next
End If
End Function
你好,你看能不能這樣呀,分開(kāi)來(lái)弄,第一步定義一個(gè)函數,或引用本身的函數,去除空格后放到另一格中,第二步在把這個(gè)去除空格后的數每個(gè)位相加在放到另外一個(gè)單元格中,這樣的話(huà)我好進(jìn)一步處理。我先謝謝了。
Function Sum2(Value As Range, T As Integer) As Integer '定義函數名和引用類(lèi)型及返回類(lèi)型
If Value.Count = 1 Then '判斷如果引用范圍只有一個(gè)單元格才進(jìn)行計算
Sum2 = 0 '初始函數值
Dim Str As String '建立一個(gè)臨時(shí)字串變量用來(lá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)計算每個(gè)位數相加的值
Sum2 = Sum2 + Int(Mid(Str, i, 1)) '相加
Next
End If
End If
End Function
用了一個(gè)標識參數來(lái)告訴函數返回的值.Sum2(引用單元格,標識).當標識參數填0的時(shí)候返回去除空格的內容,當標識填1的時(shí)候返回相加的值.你可以在不同的單元格中填入函數用標識來(lái)確定要返回的值`
你這個(gè)是把和放到一個(gè)單元格中去了,也就是最后結果,我還想要中間的哪個(gè)去除空格后的結果,讓他顯示到一個(gè)單元格中
那你就在那個(gè)單元格中輸入同樣的函數同樣的引用內容,然后在第二個(gè)參數輸入0
如下圖

聯(lián)系客服