Из спецификаций Excel 2003 страница максимальная точность составляет 15 цифр.Если при вводе в Excel значение 543523564537567457657567345 не обрабатывалось как текст, то лучшее, что вы сможете получить, - это 5.43523564537567E + 26.Свойство Text
показывает отображаемое значение ячейки со ссылкой на текущий числовой формат, тогда как свойство Value
показывает фактическое сохраненное значение.Ни один из них не может быть использован для восстановления потерянной точности, превышающей ограничение в 15 цифр.
Если значение изначально не было обработано как текст в Excel, вы не сможете восстановить потерянную точность.Чтобы быть обработанным как текст при вводе через пользовательский интерфейс, значение должно быть добавлено в ячейку, имеющую текстовый формат, до ввода значения или значение должно быть добавлено в ячейку общего формата со значением, которому предшествует одинарная кавычка.Чтобы быть обработанным как текст при вводе через VBA, значение должно быть заключено в двойные кавычки.
Просмотр сохраненного значения в XML, полученном из электронной таблицы, также покажет вам базовые данные.В этом примере я сохранил одно и то же значение в A1 и A2, но A1 рассматривалось как число, тогда как A2 обрабатывалось как текст, и вы можете увидеть разницу во фрагменте XML ниже (посмотрите на параметры ss:Type
и x:Ticked
- см. здесь ):
<Worksheet ss:Name="Sheet2">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="2">
<Row>
<Cell><Data ss:Type="Number">5.4352356453756703E+26</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String" x:Ticked="1">543523564537567457657567345</Data></Cell>
</Row>
</Table>
</Worksheet>
Обратите внимание, чтобы быстро сгенерировать XML для конкретного Range
в Excel, получить доступ к свойству Value
как обычно, но передать параметр xlRangeValueXMLSpreadsheet
или его целочисленный эквивалент 11