Страницы: 1
RSS
Числа из массива в ячейку листа.
 
Здравствуйте. Простой макрос:
Код
Option Explicit

Sub Numbers()
Dim i&, barr1()

ReDim barr1(1 To 50)
For i = 1 To UBound(barr1)
barr1(i) = Int(9 * Rnd + 0)
Next i

MsgBox Join(barr1, "")

Range("A1").Value = Join(barr1, "")
End Sub
MsgBox возвращает:



А в ячейке я получаю:



Откуда нули? Форматы ячеек менял. Чего я не понимаю, подскажите?
Изменено: НСС - 04.08.2020 23:09:42
 
Excel не знает чисел больше 15. Всё что больше 15-й цифры в числе превращается в 0 (всегда), т.е.
123456789101239000000000000000000000000000000000000000000000­0000000000
после 15-й цифры всегда будет 0
Excel это не программа для научных вычислений с огромными порядками.

Но если вы ходите записать длинное число КАК ТЕКСТ в ячейку, то перед числом вставьте АПОСТРОФ ( ' )

Вот так в Excel можно
'454545454545645645615151515145451564565614561545458458485484­8484848484849849684848484848

Но это будет обычный текст
Изменено: New - 04.08.2020 22:54:38
 
Спасибо. Буду двигаться в другом направлении.
 
Я там дописал выше в своем сообщении, как вы можете вставить в ячейку длинное число, но это будет текст
 
New, на самом деле мне и нужен формат обычного текста. Это не для вычислений. Я его вывожу в контролы юзерформы. Попробую сделать это напрямую из модуля, просто там свои заморочки, поэтому приходится обращаться к листу эксель, а потом с контролами, типа InkEdit работать.  
Изменено: НСС - 04.08.2020 22:50:59
 
Тогда просто вот так

Код
Range("A1").Value = "'" & Join(barr1, "")

Или же перед вставкой длинного числа в ячейку поменяйте формат этой ячейки на текстовый и вставляйте потом ваше число

Код
 Range("A3").NumberFormat = "@"
 Range("A3").Value = Join(barr1, "")
Изменено: New - 04.08.2020 22:53:57
 
New, спасибо, ваше решение очень помогло!
Страницы: 1
Наверх