Pregunta

Estoy usando Excel 2007 ... Tengo los siguientes rangos ...

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

ahora selecciono el rango F8: G9 y escribo la siguiente fórmula " = D5: E6 * 0.2 + G5: H6 * 0.3 " y presione CTRL + MAYÚS + ENTRAR ... es decir, agregando matriz, ... ahora tengo el siguiente resultado

       F    G
  8   0.5  0.7
  9   0.7  0.7

ahora selecciono este rango de resultados y cambio su formato de celdas a formato de número a número con 0 decimales ... ahora tengo el siguiente resultado

     F  G
 8   1  1
 9   1  1

ahora tengo el programa C # que leerá los valores de este rango ... (con el rango (...). value2) ... luego intentará encontrar los valores distintos, pero c # supone que lo lee en el caso anterior 1,1,1,1 ... que no es correcto en la realidad. Además, el programa C # ahora usará estos valores distintos para formatear las celdas con colores usando el operador igual, en cuyo caso ninguno de los valores de las celdas es igual a 1 ...

¿es posible en Excel hacer ese cambio después del formato numérico, ... al valor real2 de la celda ... pero no solo a la apariencia! porque cuando pregunto por ejemplo

MsgBox Range("F8").Value2

me muestra 0.5, pero como he cambiado el formato de celda quiero ver 1 en su lugar ... No quiero redondear el valor de Rango (" F8 "). Valor2, ya que funcionará solo para caso específico.

mi pregunta es ¿cómo es posible cambiar los valores del rango F8: G9 después del formato numérico a los que el formato numérico los ha cambiado ????

gracias !!!

¿Fue útil?

Solución

Utilice la propiedad Text del objeto Range para devolver la versión formateada

p. si la celda A1 contiene 0.77458 y está formateada con un decimal, entonces

  • Range (" A1 "). Value2 = 0.77458 (como un valor Double )
  • Range (" A1 "). Text = 0.8 (como valor de String )

Otros consejos

El formato es solo un problema de presentación en cuanto a cómo se muestran los datos. Si desea trabajar con valores redondeados, debe redondear el valor real, ya sea en Excel con la función de redondeo o en .net con Math.Round.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top