Pergunta

Eu estou usando o Excel 2007 ... i têm os seguintes intervalos ...

      D    E       G   H
  5   1    2       1   1
  6   2    2       1   1

Agora eu selecionar o F8 intervalo: G9 e escrever a seguinte fórmula "= D5: E6 * 0,2 + G5: H6 * 0,3" e pressione as teclas CTRL + SHIFT + ENTER ... ou seja, fazer disso matriz, ... agora Eu tenho o seguinte resultado

       F    G
  8   0.5  0.7
  9   0.7  0.7

Agora eu selecionar essa gama resultado e alterar seu formato das células para o formato de número para número com 0 casas decimais .... agora eu tenho o seguinte resultado

     F  G
 8   1  1
 9   1  1

Agora eu tenho c # programa que irá ler estes valores alcance ... (com intervalo (...). Valor2) ... em seguida, vai tentar encontrar os valores distintos, mas c # assume que ele lê-lo caso acima 1,1,1,1 ... que não é correto na realidade. Além disso programa c # vai agora usar esses valores distintos para formatar as células com cores usando a igual operador caso em que nenhum dos valores de célula é igual a 1 ...

É possível em excel para fazer essa mudança após numberformat, ... ao value2 real do celular ... mas não apenas aparência! porque quando eu perguntar por exemplo

MsgBox Range("F8").Value2

ele me mostra 0,5, mas desde que eu mudei o formato da célula eu quero ver uma vez ... Eu não quero para arredondar o valor de Range ( "F8"). Value2, uma vez que irá funcionar apenas para específica caso.

minha pergunta é como é possível mudar o F8: valores da gama G9 após numberformat para os que numberformat mudou-los ????

thanks !!!

Foi útil?

Solução

Use a propriedade Text do objeto Range para retornar a versão formatada

por exemplo. se a célula A1 contém 0,77458 e é formatada com uma casa decimal depois

  • Range("A1").Value2 = 0,77458 (como um valor Double)
  • Range("A1").Text = 0,8 (como um valor String)

Outras dicas

A formatação é apenas uma questão de apresentação sobre a forma como os dados são exibidos. Se você quiser trabalhar com valores arredondados você deve arredondar o valor real, seja no Excel usando a função rodada, ou em .net usando Math.Round.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top