2014-01-14 6 views
2

Мне нужно найти способ поместить 19-значное целое число (шкала 9 × 10^18) в документ Word. Проблема в том, что он должен запускаться на 32-битной машине, поэтому тип данных LongLong не будет работать.VBA очень длинное целое

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

Как исправить эту проблему?

+0

Try 'Double' вместо' Long'. –

+1

Вам нужно обработать номер в виде строки - VBA поддерживает только 15 цифр точности, поэтому ничего больше, чем вы потеряете некоторую информацию. –

+0

Если вам нужно делать вычисления, см. Здесь, например: http://tushar-mehta.com/misc_tutorials/project_euler/LargeNumberArithmetic.htm –

ответ

1

Если вам просто нужны последние пять цифр, и вы должны те, чтобы быть рядом, вы можете использовать такой код:

Dim sEan As String 
Dim lLastFive As Long 

sEan = "90000000000000" 
lLastFive = CLng(Right$(sEan, 5)) 

Debug.Print lLastFive, TypeName(lLastFive) 

И вы должны получить

12345  Long 
+1

Спасибо, что это был именно тот код, который мне нужен, даже если первая из последних пяти цифр - 0, не написана. Благодарю вас благодарно – Efratror

0

Большое количество как пример, вы предоставляете впишутся в типе Double:

Sub Test() 
Dim num As Double 
Dim lon As Long 

num = 9 * 10^18 '## This should work 

lon = 9 * 10^18 '## This will raise an error. 

End Sub 
+1

Я не уверен, он будет передавать '9E + 18' вместо' 900000000000 ... 000', который, я считаю, нужен OP. –

+3

Он «подойдет», но не VBA управляет только 15 цифрами точности? Так что что-то с> 15 цифрами может быть неправильно представлено. –

+0

Пробовал это, но не решение, в котором я нуждался в коде, вернулся с этим выходом (8.01673891020201E + 17 для переменной tis 801673891020201403 Мне нужен полный номер, потому что это код EAN с 5-значным аддоном – Efratror

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