Я вставляю данные в документ Word из электронной таблицы Excel. Существует значение, которое имеет более 2 знаков после запятой. Я использую следующий код, чтобы попытаться преобразовать его в 2 десятичных знака и вставить его в мой документ.Использование .NumberFormat для форматирования десятичных мест в Excel VBA
wdApp.Selection.GoTo what:=-1, Name:="Device_Avail"
''Referring to the total count column in the Device Availability worksheet.
Set devAvailRow = shDevAvail.Range("A:A").Find("Overall Totals:",
After:=Cells(1, 1), searchdirection:=xlPrevious)
''Actual piece to format value to 2 decimal places.
shDevAvail.Cells(devAvailRow.Row, 3).NumberFormat = "0.00"
devAvailPer = shDevAvail.Cells(devAvailRow.Row, 3)
wdApp.Selection.TypeText devAvailPer
Значение теперь показывает только 2 десятичных знака, но панель формул показывает намного больше.
И ?Selection.Value
в Immediate Window из VBA консоли показывает 89.43448051 тоже. И это вставляется в мой документ.
Почему функция .NumberFormat
может изменить ее до 2 знаков после запятой? Что мне нужно изменить?
* NumberFormat * не изменяет сам номер. Это влияет только на визуальное отображение номера. (Было бы очень плохо, если бы он * изменил значения, особенно когда вы занимались сложными бухгалтерскими или финансовыми расчетами. Представьте, какие ошибки могут вызвать?) –