按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)"错误.
能不能给解释一个,本人对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
你好,你看能不能这样呀,分开来弄,第一步定义一个函数,或引用本身的函数,去除空格后放到另一格中,第二步在把这个去除空格后的数每个位相加在放到另外一个单元格中,这样的话我好进一步处理。我先谢谢了。
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) '循环计算每个位数相加的值
Sum2 = Sum2 + Int(Mid(Str, i, 1)) '相加
Next
End If
End If
End Function
用了一个标识参数来告诉函数返回的值.Sum2(引用单元格,标识).当标识参数填0的时候返回去除空格的内容,当标识填1的时候返回相加的值.你可以在不同的单元格中填入函数用标识来确定要返回的值`
你这个是把和放到一个单元格中去了,也就是最后结果,我还想要中间的哪个去除空格后的结果,让他显示到一个单元格中
那你就在那个单元格中输入同样的函数同样的引用内容,然后在第二个参数输入0
如下图
联系客服