如何在vba中对数字列表求和?

如何在vba中对数字列表求和?,vba,ms-word,Vba,Ms Word,我的Word宏中有一个vba函数,它以字符串形式返回逗号分隔的数字列表。比如, var = (1.5, 2, 3, 5) 我怎样把它们加起来才能算出总数呢 您需要将字符串拆分为字符串数组,使用Val、CDbl或CSng(根据您的要求)将每个子字符串转换为一个数字,然后添加数字 下面是一个例子: Dim inputStr As String inputStr = "1.5, 2, 3, 5" Dim arr() As String arr = Split(inputStr, ",") Dim

我的Word宏中有一个vba函数,它以字符串形式返回逗号分隔的数字列表。比如,

var = (1.5, 2, 3, 5) 

我怎样把它们加起来才能算出总数呢

您需要将字符串拆分为字符串数组,使用
Val
CDbl
CSng
(根据您的要求)将每个子字符串转换为一个数字,然后添加数字

下面是一个例子:

Dim inputStr As String
inputStr = "1.5, 2, 3, 5"
Dim arr() As String
arr = Split(inputStr, ",")

Dim total As Single     ' Or `Double` if you need more accuracy.
For Each subStr In arr
    total = total + Val(subStr)     ' Use `Val` if you want to ignore non-numeric values.
    'total = total + CSng(subStr)   ' Use `CSng` to break when finding non-numeric values.
    'total = total + CDbl(subStr)   ' Use `CDbl` if you need more accuracy.
Next

MsgBox total

您需要将字符串拆分为字符串数组,使用
Val
CDbl
CSng
(根据您的要求)将每个子字符串转换为一个数字,然后添加数字

下面是一个例子:

Dim inputStr As String
inputStr = "1.5, 2, 3, 5"
Dim arr() As String
arr = Split(inputStr, ",")

Dim total As Single     ' Or `Double` if you need more accuracy.
For Each subStr In arr
    total = total + Val(subStr)     ' Use `Val` if you want to ignore non-numeric values.
    'total = total + CSng(subStr)   ' Use `CSng` to break when finding non-numeric values.
    'total = total + CDbl(subStr)   ' Use `CDbl` if you need more accuracy.
Next

MsgBox total
“,”
替换为
“+”
,并在字符串上使用
计算公式。注意:必须创建对Excel实例的引用,至少可以说这有点繁重!我找不到一个与求值函数相对应的词,这似乎有点奇怪:

Option Explicit
Public Sub test()
    Dim inputStr As String, oXL As Object
    inputStr = "1.5, 2, 3, 5"
    With CreateObject("Excel.Application")
    MsgBox .Evaluate(Replace(inputStr, ",", "+"))
       .Quit
    End With
End Sub
“,”
替换为
“+”
,并在字符串上使用
计算公式。注意:必须创建对Excel实例的引用,至少可以说这有点繁重!我找不到一个与求值函数相对应的词,这似乎有点奇怪:

Option Explicit
Public Sub test()
    Dim inputStr As String, oXL As Object
    inputStr = "1.5, 2, 3, 5"
    With CreateObject("Excel.Application")
    MsgBox .Evaluate(Replace(inputStr, ",", "+"))
       .Quit
    End With
End Sub

您需要将字符串拆分为字符串数组,使用
Val
CDbl
CSng
(根据您的要求)将每个子字符串转换为一个数字,然后添加数字。您尝试过什么吗?您需要将字符串拆分为字符串数组,使用
Val
CDbl
CSng
(根据您的要求)将每个子字符串转换为一个数字,然后添加数字。你试过什么吗?我喜欢@qharr。不幸的是,这是一个Word宏,而不是Excel。我引用了Excel。我承认有点粗暴@Cindymister-Word中是否有用于计算字符串的方法?目前似乎找不到。我喜欢@qharr。不幸的是,这是一个Word宏,而不是Excel。我引用了Excel。我承认有点粗暴@Cindymister-Word中是否有用于计算字符串的方法?目前似乎找不到。