2015-09-22 2 views
1

Почему следующий код продукция «100%» в моем процентного формате cells(1,1)Более точное поведение Excel процента форматирования

Worksheets("Sheet1").cells(1,1).value = .05 

EDIT: Я сделал мой вопрос гораздо проще, поскольку комментарии прояснились некоторые неясности.

EDIT: Я понял позже, что я случайно изменил значение моей ячейки() снова на 100%. Поскольку это произошло в определенном месте в моем коде, я подумал, что это какая-то проблема округления. Моя проблема должна быть решена сейчас :).

+0

.05 из 1 составляет 5 сотых, или 5% - нет? – MatthewD

+1

Формат ячейки не влияет на значение, которое вы его программно назначили. Если ваш код присваивает значение 5 ячейке, отформатированной в процентах, она отображает 500%, а не 5%. – Rory

+0

Ну, 'myPercent' var уже отформатирован как процент в моем коде. Поэтому myPercent = .05, для меня, означает 0,05%. Но я думаю, что это не то, как компьютер обрабатывает его. Я могу сделать myPercent/100, прежде чем изменить значение своей ячейки, но по какой-то причине конечный результат почти всегда будет «100%». – bmende

ответ

2

Вы можете легко сделать это, установив процент в VBA - так:

, если переменная «mypercent» является 0,05.

Worksheets("Sheet1").cells(1,1).value = Format(myPercent, "0.00%") 

Отображается как 5.00%, как ожидалось.

Надеюсь, что помогает

+0

Ahh, но если 'myPercent' равен .05, я хочу, чтобы значение отображалось как .05% – bmende

+0

У вас есть немного смущенный. 0,05 в Excel будет выражаться как 5%, поскольку Excel работает в процентах от 0-1. Если вы хотели получить 0,05 в процентах, вам понадобится ваша переменная 0,0005 или сделать: Формат (myPercent/100, "0.00%") Это вы, что были после? – Trum

+0

Да, точно. Я на самом деле пробовал это, и по какой-то причине конечный результат 100% в моей камере. Он показывает как правильное значение на мгновение, пока я не перехожу через мой код. (Я отредактировал мой вопрос, чтобы мой ответ казался более простым сейчас) – bmende

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