2015-02-13 4 views
3

Я пытаюсь создать модуль VBA для суммирования ячеек, исключая ячейки с зачеркиванием. Код, который я использую ниже, отлично работает, но не вычисляет десятичные числа. Например, «5 + 5.50» будет равно 10.00. Я хочу, чтобы код сохранял десятичные значения до двух знаков после запятой, чтобы сумма выше была равна 10.50.Код не вычисляет десятичные знаки

Public Function ExcStrike(pWorkRng As Range) As Long 
'Update 20140819 
Application.Volatile 
Dim pRng As Range 
Dim xOut As Long 
xOut = 0 
For Each pRng In pWorkRng 
If Not pRng.Font.Strikethrough Then 
xOut = xOut + pRng.Value 
End If 
Next 
ExcStrike = xOut 
End Function 
+1

Это просто заняло немного времени ... решение заключалось в том, чтобы изменить «Как долго» на «Как единое целое» Спасибо! – arbitel

ответ

4

Ради ответа:

Тип Long данных содержит целые числа.

на OP:

решение было изменить 'As Long' до 'As Single'

Я полагаю, я должен добавить немного деталей о Single

Считает подписали IEEE 32-разрядные (4 байта) числа с плавающей запятой с одинарной точностью, находящиеся в диапазоне от -3.4028235E + 38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,4028235E + 38 для положительных значения. Номера с одной точностью хранят аппроксимацию действительного числа.

Смежные вопросы