2015-11-23 2 views
-1

J'ai essayé d'utiliser la mise en forme conditionnelle pour remplir toute cellule dans un classeur rouge si elle contient la valeur 0.0. Excel reconnaît cependant toute cellule vide comme étant un zéro et les rend tous rouges en procédant ainsi. J'ai essayé d'utiliser le code VBA, mais je ne peux pas obtenir le bon combo.Marquage de la valeur '0'

+0

S'il vous plaît ajouter le code que vous avez déjà fatigué –

Répondre

1

Un autre,

=and(len(a1), not(a1)) 

Sur une feuille de calcul, zéro équivaut à FALSE et tout ce qui est pas faux est vrai.

2

Vous pouvez utiliser IsBlank() qui aura la valeur TRUE si la cellule est vide, FALSE sinon.

Combinez cela avec un OR ou un AND, en tenant compte de vos tests d'expression actuels pour 0.0, selon le cas.

3

utiliser une formule comme la règle:

=AND(NOT(ISBLANK(A1)),A1=0) 
+0

Juste FYI aussi, dans VBA, vous pouvez utiliser 'IsEmpty()'. 'IsBlank()' n'est pas utilisé dans VBA. – BruceWayne

+1

FYI à votre FYI - 'IsEmpty()' fonctionnera principalement pour cela, mais ce n'est pas vraiment ce à quoi il est destiné dans VBA. Important à noter. –

+0

Oh vraiment? Je vais devoir regarder 'IsBlank' alors, je pensais qu'ils étaient équivalents. Puisque vous ne pouvez pas utiliser 'WorksheetFunction.IsBlank()', comment feriez-vous un test 'IsBlank()' dans VBA? avec Évaluer? – BruceWayne

1

Cela fera pour le formatage conditionnel:

=(a1=0)*LEN(a1) 

.

Voici pourquoi cela fonctionne ...

Dans le premier ensemble de parenthèses, nous testons si la valeur actuelle de la cellule est 0. C'est soit VRAI ou FAUX.

Mais cela ne suffit pas, car les cellules vides seront également évaluées à 0. Donc, nous testons également si la cellule actuelle a une longueur. La réponse à cela Some length number.

Ensuite, le formatage conditionnel prend le résultat du calcul pour chaque cellule et applique la mise en forme sélectionnée lorsque la formule est évaluée à TRUE, et toute valeur numérique autre que zéro est contrainte à TRUE. Par conséquent, la formule initiale de cette réponse peut être traduite en anglais comme suit: Si la cellule en cours d'évaluation a une valeur équivalente à zéro ET que cette valeur a une longueur, appliquez la mise en forme conditionnelle sélectionnée.

+0

La fonction 'LEN' renvoie un nombre, pas vrai/faux. Donc je dirais que c'est la coercition de True/false à 1/0 qui conduit votre solution, pas une table de vérité booléenne –

+0

@PeterM Assez vrai. J'ai mis à jour la réponse. –

+0

Je l'ai maintenant. Pardonnez-moi, je suis un peu rouillé. – vcombs