2017-03-16 1 views
1

J'ai regardé autour pour cela et il semble si simple, mais je ne peux pas le faire fonctionner.VBA pour chaque cellule en format de plage en pourcentage

J'ai une table et une colonne doit être formatée en pourcentage. Ci-dessous est mon code mais il ne forme pas les cellules, il les laisse juste comme la décimale.

Je pense que c'est parce que cell, même si déclaré comme une plage, est en fait la valeur de la cellule, donc je ne sais pas comment faire référence à cette plage.

Ma variable returnRebate est déclarée comme une plage et la boucle est bouclée dans la plage correcte.

code:

Dim cell As Range, p As Double 
For Each cell In returnRebate 
    p = cell.Value 

    If p <> 0 And p > 1 Then 
     p = p * 0.01 
     cell.Value = p 
     cell.NumberFormat = "Percent" 'Not formatting here 
    ElseIf p < 1 And p > 0 Then 
     'do nothing to it 
    Else 
     cell.Value = vbNullString 
    End If 
Next 
+2

essayez de remplacer .NumberFormat = 'pour cent' avec .NumberFormat = "0,00%" – RyanL

+0

@RyanL omg Je savais que c'était simple! Je pensais que j'avais essayé cela mais je suppose que non – cheshire

Répondre

6

Essayez de remplacer .NumberFormat='Percent' avec .NumberFormat="0.00%"

+1

J'ai utilisé '.NumberFormat =" 0% "' car je ne voulais pas les décimales supplémentaires. Ça marche toujours bien! – cheshire

+1

@cheshire Juste essayé avec Office Prof 2013 et pas de problème avec les points décimaux, FWIW. Peut-être dépend de la version (?) – Levon