【发布时间】:2020-06-09 15:25:24
【问题描述】:
我希望能够将 4 位数字的各个数字相加,但它似乎不起作用。 我纯粹在 VBA 代码中执行此操作。结果输出到工作表。 我已经提取了部分代码并将其放入单独的宏中进行测试,仍然得到相同的结果。它将数字连接在一起。 我已经添加了很多 msgbox 行以查看它在做什么,但无法弄清楚为什么在这种情况下 main 的值没有添加到 intm 变量中。 变量 intd1 到 intd4 正确获取值,但是当我尝试将它们一起添加到 intm 时,它只是将它们连接在一起。
Sub AddDigits()
'
' Add individual digits of number together
'
Dim intd1, intd2, intd3, intd4, main, intm As Integer
main = 1234
intd1 = Left(main, 1)
MsgBox (intd1)
intd2 = Mid(main, 2, 1)
MsgBox (intd2)
intd3 = Mid(main, 3, 1)
MsgBox (intd3)
intd4 = Right(main, 1)
MsgBox (intd4)
intm = intd1 + intd2 + intd3 + intd4
MsgBox ("intm = " & intm & Chr(13) & _
"intd1 = " & intd1 & Chr(13) & _
"intd2 = " & intd2 & Chr(13) & _
"intd3 = " & intd3 & Chr(13) & _
"intd4 = " & intd4 & Chr(13))
End Sub
【问题讨论】:
-
这就是我们在 VBA 领域宣扬“每行一个点”的原因。
-
intm = Application.Evaluate("SUMPRODUCT(--(MID(" & main & ",ROW(1:4),1)))")