L'utilisation d' .NumberFormat de Format de Décimales dans Excel VBA
Je suis d'insertion de données dans un document Word à partir d'une feuille de calcul Excel. Il y a une valeur qui dispose de plus de 2 décimales. J'utilise le code suivant pour tenter de le convertir à 2 décimales et de le coller à mon doc.
wdApp.Selection.GoTo what:=-1, Name:="Device_Avail"
''Referring to the total count column in the Device Availability worksheet.
Set devAvailRow = shDevAvail.Range("A:A").Find("Overall Totals:",
After:=Cells(1, 1), searchdirection:=xlPrevious)
''Actual piece to format value to 2 decimal places.
shDevAvail.Cells(devAvailRow.Row, 3).NumberFormat = "0.00"
devAvailPer = shDevAvail.Cells(devAvailRow.Row, 3)
wdApp.Selection.TypeText devAvailPer
La valeur n'affiche plus que 2 décimales, mais la barre de formule est montrer beaucoup plus.
Et ?Selection.Value
dans la Fenêtre exécution de VBA console est en montrant 89.43448051 trop. Et cela devient collé dans ma doc.
Pourquoi le .NumberFormat
modification de la fonction à 2 décimales? De quoi ai-je besoin de changer?
- NumberFormat ne modifie pas le nombre lui-même. Il n'affecte la façon dont le nombre est affichée. (Il serait vraiment mauvais si il fait modifier les valeurs, surtout quand vous étaient aux prises avec des complexes de comptabilité ou de calculs financiers. Imaginez les erreurs qui serait la cause?)
- Jetez un oeil ici stackoverflow.com/questions/20648149/...
Vous devez vous connecter pour publier un commentaire.
La
.NumberFormat
propriété formats de rendu du texte et ne modifie pas la valeur stockée dans la cellule. Vous pouvez utiliser la Gamme.Le texte " pour obtenir la valeur affichée:Format de nombre seulement de changer le format que vous voyez.
La valeur sous-jacente est la VARIANTE de toute façon.
Essayez d'utiliser des fonction ROUND() pour assurez-vous de n'importer que 2 décimales
Une manière générale, vous n'avez pas vraiment envie de changer la précision de la première valeur sous-jacente. Lorsque vous le faites, 'lost-un-sou' scénario vient souvent en jeu; en particulier lorsque le calcul et le total des pourcentages dans les impôts, taux d'intérêt, les prix de gros au détail de balisage, etc.
Avec cela dit, vous pouvez modifier rapidement la précision de la valeur sous-jacente à ce qui est affiché pour tout le classeur avec le suivant.
La .PrecisionAsDisplayed propriété est un membre de la Classeur. En tant que tel, il peut être consulté à l' Propriété ActiveWorkbook, Propriété ThisWorkbook ou un nom de classeur dans le Collection De Classeurs.
Cette option est également disponible dans les Options d'Excel, Avancé, Lors du calcul de ce classeur, de Définir la Précision au format affiché. S'attendre à une alerte semblable.