2015-06-18 2 views
4

Я оптимизирую макрос в VBA, который не был объявлен ни одним из типов данных, поэтому все было неудобно обработано компилятором в качестве варианта. Я имею дело с научными измерениями, поэтому мне нужна точность. Как объявить «Dim decAsdf как Decimal» (не так, но правильно)?VBA Как объявить как десятичный

ответ

8

Вы не можете объявить переменную как Decimal - вы должны использовать Variant (вы можете использовать CDec, чтобы заполнить его с Decimal типа, хотя).

+0

Как использовать CDec? –

+0

Например: 'Dim v: v = CDec (" 123456789.123456789 ")' – Rory

+0

Итак, тогда каждое десятичное число объявлено в другой строке? –

2

Лучшим способом является объявление переменной как Single или Double в зависимости от точности, в которой вы нуждаетесь. Тип данных Single использует 4 байта и имеет диапазон от -3.402823E38 до 1.401298E45. Double использует 8 байтов.

Вы можете объявить следующим образом:

Dim decAsdf as Single 

или

Dim decAsdf as Double 

Ниже приведен пример, который отображает окно сообщения со значением переменной после расчета. Все, что вам нужно сделать, это поместить его в модуль и запустить.

Sub doubleDataTypeExample() 
Dim doubleTest As Double 


doubleTest = 0.0000045 * 0.005 * 0.01 

MsgBox "doubleTest = " & doubleTest 
End Sub 
+0

Хорошо, спасибо! Поэтому я бы сказал: Dim decAsdf как Double, затем на следующей строке Dim decAsdf: decAsdf = CDec (decAsdf)? –

+0

Вам вообще не нужно использовать 'CDec (decAsdf)'. Если значение 'decAsdf' уже находится в десятичной форме. Тип данных 'Double' или' Single' может обрабатывать десятичные числа изначально. Я добавил в ответ некоторый пример кода. Поместите этот код в модуль и просто запустите его. – daytonrazorback

+0

ОК, спасибо, я просто использую этот тип данных. –

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