Арифметическая операция для варианта типа данных в VBA

#excel #vba #variant

#excel #vba #вариант

Вопрос:

 
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, но он по-прежнему выдает ту же ошибку. Спасибо

Комментарии:

1. Почему вы используете a Variant ? Вам нужно будет проверить вариант, чтобы увидеть, является ли он числовым, прежде чем пытаться выполнить с ним математические вычисления … learn.microsoft.com/en-us/office/vba/language/reference /…

Ответ №1:

MMULT возвращает массив (даже если возвращается только одно значение) — вы не можете добавить Double и массив.

 total = total   temp(1)