Я использую excel 2007... у меня есть следующие диапазоны...
D E G H
5 1 2 1 1
6 2 2 1 1
теперь я выбираю диапазон F8: G9 и записываю следующую формулу: "= D5: E6 * 0.2 + G5: H6 * 0.3" и нажимаем CTRL + SHIFT + ENTER... т.е. делаем добавление матрицы,... теперь я получил следующий результат
F G
8 0.5 0.7
9 0.7 0.7
теперь я выбираю этот диапазон результатов и меняю свой формат ячеек на числовой формат на число с 0 десятичными знаками.... теперь у меня есть следующий результат
F G
8 1 1
9 1 1
теперь у меня есть программа С#, которая будет читать эти значения диапазона... (с диапазоном (...). value2)... затем попытается найти различные значения, но С# предполагает, что он читает его вышеприведенный случай 1,1,1,1... что неверно в реальности. кроме того, программа С# теперь будет использовать эти различные значения для форматирования ячеек с цветами с помощью оператора equals, и в этом случае ни одно из значений ячейки не равно 1...
возможно ли в excel сделать это изменение после numberformat,... до действительного значения2 ячейки... но не только внешний вид! потому что когда я спрашиваю пример
MsgBox Range("F8").Value2
он показывает мне 0.5, но поскольку я изменил формат ячейки, я хочу видеть 1 вместо этого... Я не хочу округлять значение Range ( "F8" ). Value2, поскольку он будет работать только для определенных дело.
мой вопрос в том, как можно изменить значения диапазона F8: G9 после numberformat на те, которые numberformat изменил их.
спасибо!!!
Используйте свойство Text
объекта Range
для возврата отформатированной версии
например. если ячейка A1 содержит 0.77458 и отформатирована до одного десятичного знака, тогда
Range("A1").Value2
= 0.77458 (как значение Double
)Range("A1").Text
= 0,8 (как значение String
)Форматирование - это просто проблема с представлением о том, как отображаются данные. Если вы хотите работать с округленными значениями, вы должны округлить фактическое значение, либо в Excel, используя круглую функцию, либо в .net, используя Math.Round.