VBA中变体数据类型的算术运算

Posted

技术标签:

【中文标题】VBA中变体数据类型的算术运算【英文标题】:Arithmetic Operation for Variant Data Type in VBA 【发布时间】:2020-11-17 06:24:31 【问题描述】:

Public Sub MMULT()

Dim temp As Variant
Dim total As Double
Dim a, b As Range
Dim i As Integer

total = 0.45

For i = 1 To 9
Set a = Range(Cells(i + 15, 3), Cells(i + 15, 11))
Set b = Range(Cells(16, 14), Cells(24, 14))
temp = Application.WorksheetFunction.MMULT(a, b)
total = total + temp
Next i

Range("M9").Select
Range("M9").Value = total

End Sub

您好,有人可以帮我解决这个错误吗?我在第 14 行收到一个消息框“类型不匹配”,其中包含代码:total = total + temp。我已经尝试了一些更改,例如将变量的所有数据类型转换为变体,但它仍然给出相同的错误。谢谢

【问题讨论】:

你为什么使用Variant?在尝试对其进行数学运算之前,您需要检查变量以查看它是否为数字...docs.microsoft.com/en-us/office/vba/language/reference/… 【参考方案1】:

MMULT 返回一个数组(即使只返回一个值)——你不能添加一个 Double 和一个数组。

total = total + temp(1)

【讨论】:

以上是关于VBA中变体数据类型的算术运算的主要内容,如果未能解决你的问题,请参考以下文章

VBA算术运算符

C语言如何定义一个算术表达式

C++指针的算术运算 关系运算

JAVA-初步认识-第二章-算术运算符1

Matlab-运算符

int 的基本算术运算 - Java