Передача чисел в Excel VBA не должна округлять десятичные дроби - PullRequest
0 голосов
/ 11 февраля 2019

Я «копирую» строку таблицы в другое место (диапазон, а не таблицу), используя этот метод:

rDestination.value = TableRow.value

Последняя ячейка строки - это доля доллара,такие как 0,01925 $.Но когда значение копируется в его место назначения, оно читается как 0,02 доллара.

Это не просто форматирование;Я заглядываю внутрь ячейки, и она действительно говорит: $ 0,02.

Я пытался использовать этот код как до, так и после другого:

 rDestionation.cells(5).NumberFormat = "0.00000"

, а также

rDestination.Cells(5).NumberFormat = TableRow.Cells(5).NumberFormat 

Но они не работают.(Не удивительно, поскольку это не влияет на формат).

1 Ответ

0 голосов
/ 11 февраля 2019

Используйте .Value2 вместо .Value.

Вот сообщение в блоге, которое объясняет различия между двумя (а именно, когда вы имеете дело с валютой): https://fastexcel.wordpress.com/2011/11/30/text-vs-value-vs-value2-slow-text-and-how-to-avoid-it/

Как упомянуто там:

.Value2 действительно должно быть значением по умолчанию и определенно используется 99% времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...