excel numberformat
-
06-07-2019 - |
Domanda
Sto usando Excel 2007 ... ho i seguenti intervalli ...
D E G H
5 1 2 1 1
6 2 2 1 1
ora seleziono l'intervallo F8: G9 e scrivo la seguente formula "= D5: E6 * 0,2 + G5: H6 * 0,3"; e premi CTRL + MAIUSC + INVIO ... cioè facendo l'aggiunta di matrice, ... ora ho il seguente risultato
F G
8 0.5 0.7
9 0.7 0.7
ora seleziono questo intervallo di risultati e cambio il formato delle celle in formato numerico in numero con 0 cifre decimali .... ora ho il seguente risultato
F G
8 1 1
9 1 1
ora ho un programma c # che leggerà i valori di questo intervallo ... (con intervallo (...). valore2) ... poi proverà a trovare i valori distinti ma c # assume che lo legga nel caso sopra 1,1,1,1 ... che non è corretto nella realtà. inoltre il programma c # ora utilizzerà questi valori distinti per formattare le celle con i colori utilizzando l'operatore equals nel qual caso nessuno dei valori di cella è uguale a 1 ...
è possibile in Excel apportare quel cambiamento dopo la formattazione del numero, ... al valore reale2 della cella ... ma non solo l'aspetto! perché quando chiedo ad esempio
MsgBox Range("F8").Value2
mi mostra 0,5, ma dal momento che ho cambiato il formato della cella voglio vedere invece 1 ... Non voglio arrotondare il valore di Range ("quotazione F8"). Valore2, poiché funzionerà solo per caso specifico.
la mia domanda è come è possibile cambiare i valori dell'intervallo F8: G9 dopo il formato del numero con quelli che il formato del numero li ha cambiati ????
grazie !!!
Soluzione
Utilizza la proprietà Text
dell'oggetto Range
per restituire la versione formattata
es. se la cella A1 contiene 0,77458 ed è formattata al primo decimale,
-
Range (" A1 "). Value2
= 0.77458 (come valoreDouble
) -
Range (" A1 "). Testo
= 0.8 (come valoreString
)
Altri suggerimenti
La formattazione è solo un problema di presentazione su come vengono visualizzati i dati. Se vuoi lavorare con valori arrotondati dovresti arrotondare il valore reale, sia in Excel usando la funzione round, sia in .net usando Math.Round.