2015-12-23 3 views
3

Я получаю данные, как ниже от внешнего источникаПреобразование десятичных чисел в процентах

enter image description here

Что мне нужно, чтобы преобразовать все выделенные данные в процентах, и я не могу потерял часть после запятой. Вот что я пытался до сих пор:

For Each actCell In shRecipiente.ListObjects("tblRecipiente").ListColumns("All-In Rate").DataBodyRange 
    If Not (Right(actCell.NumberFormat, 1) = "%") Then 
     actCell.Value = Format(actCell, "#.####%") 
    End If 
Next actCell 

Но я получаю, например, 396,83% вместо 3,9683%

ответ

1

изменение

actCell.value = Format(actCell, "#.####%") 

в

actCell.value = Format(actCell/100, "#.####%") 

Однако, если это не реальная стоимость% вы NEET, чтобы изменить его

actCell.value = Format(actCell, "#.####""%""") 

или если вы не можете изменить значения попробовать

actCell.Offset.NumberFormat = "#.####""%""" 
+0

Спасибо за ответ, но он все еще не работает, теперь я получаю 39683% вместо 3,9683% –

+0

у вас есть источник этого? может быть, ошибка есть ... –

+0

К сожалению, я не могу изменить источник –

0

Разделите число на 100 и формат в процентах.

=A1/100

Edit - для проверки, который отформатирован в процентах и ​​которые не используют: =IF(CELL("format",A1)="P0",A1,A1/100) - P0 указывает процентный формат. Формула отображает все числа без процентов, поэтому 150% будут отображаться как 1,5, равно 150.
Тогда это всего лишь случай форматирования всего столбца в процентах.

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