excel中vBA?

假如单元格的数值为123,让它变成1十2十3=6,就是每个字符相加的和,用vba怎么写?谢了

按题主的要求写了一个代码,不过这个代码并不是直接改原单元格,而是在原单元格的右边列出所需要的拆分式子,如果想直接改变原单元格也是可以的,但不建议这样做,因为这样就没得对比了。具体操作方法如下:

(1)把以下这段祖传的代码复制到你的VBA编辑器里;

(2)在你的excel里选择要拆分数字的那些单元格;

(3)运行那段祖传的代码;

(4)就得到你想要的结果啦;

(5)不用谢,还有问题就再问;

祖传代码:

Sub 拆分数字()

Dim i%, j%, k%, sum%

Dim r As Range

Dim s$

s = ""

sum = 0

i = MsgBox("如已选择好要拆分的单元格,请点“是”,否则点“否”", vbYesNo, "提示!")

If i = 7 Then Exit Sub

For Each r In Selection

k = Len(r)

For j = 1 To k

If j < k Then

s = s & Mid(r, j, 1) & "+"

Else

s = s & Mid(r, j, 1)

End If

sum = sum + Mid(r, j, 1)

Next

s = s & "=" & sum

r.Offset(0, 1) = s

s = ""

sum = 0

Next

End Sub

效果图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-10-31
选中数值单元格,运行以下vba即可

Sub SumCharacters()
Dim cellValue As String
Dim sum As Integer
Dim i As Integer

' 获取选定单元格的数值
cellValue = ActiveCell.Value

' 初始化和为0
sum = 0

' 循环遍历每个字符并相加
For i = 1 To Len(cellValue)
sum = sum + CInt(Mid(cellValue, i, 1))
Next i

' 将和赋值给选定单元格
ActiveCell.Value = sum
End Sub