Faire une fonction personnalisée de retour rien - pas de 0, pas une chaîne vide, mais rien
J'ai une fonction personnalisée pour être appelée à partir de l'intérieur d'une des feuilles de calcul' de la cellule, que je veux revenir rien dans certains cas. En d'autres termes, je veux la cellule avec ma fonction à être traitée comme une cellule vide (sauf si la fonction retourne une valeur).
Le plus proche que je peux obtenir à faire est de retourner une chaîne vide ""
. Malheureusement, une cellule avec une chaîne de longueur zéro n'est pas considéré comme vide par COUNTA
ou COUNTBLANK
, et les sauts de formules mathématiques (par exemple 1 + "" = #VALUE
).
La plupart de mes tentatives de retour rien de provoquer un 0 à être retournés, mais ce serait interprétée très différemment par l'utilisateur.
Que dois-je faire?
Essayé jusqu'à présent:
Returns 0:
result = null
result = VbEmpty
result = Range("SomeCellKnownToBeEmpty")
Returns error:
result = Nothing
Réponse: maintenant, je suis raisonnablement sûr que ce n'est pas possible, et le mieux qu'on puisse faire est de travailler autour d'elle.
Contourner options:
- Retourner une chaîne
"-blank-"
et avoir une macro VBA supprimer le contenu de la cellule avec"-blank-"
. Une étrange démarche, mais correspond à mes besoins. Je suis en train de faire ce que l'une des étapes dans la préparation de mon classeur pour la publication. - Renvoie la chaîne vide et explicitement obtenir d'autres formules dans la feuille à traiter
""
vide. - De retour et d'affichage 0: Return 0 et utiliser la mise en forme personnalisée pour masquer 0.
En dépit de ce que disent les autres, vous pouvez obtenir un vrai blanc, comme un résultat de la formule: stackoverflow.com/a/39351425/1903793
OriginalL'auteur WoodenKitty | 2013-06-05
Vous devez vous connecter pour publier un commentaire.
Le problème que vous avez est que l'UDF va toujours fournir une valeur, de manière telle que si vous disposez d'une cellule avec la formule, il ne peut pas être vide ou vide, qui est ce que vous voulez.
Je pense que vous pourriez avoir besoin d'essayer et de gérer le zéro ou des chaînes vides dans vos autres formules ou à convertir le plus grand processus tout à fait VBA.
Pour en savoir plus, voir: http://excel.tips.net/T002814_Returning_a_Blank_Value.html
Edit: double Possible: De retour à vide de la cellule de la formule dans Excel
OriginalL'auteur CuberChase
Le plus proche que je puisse avoir est de définir la valeur de retour d'une Variante et retourner la valeur null:
Je vous conseille à l'encontre de ce que, personnellement, il est très inhabituel et peut causer des problèmes par la suite.
OriginalL'auteur Andy G
Pas pour les COMPTER... fonctions, mais d'avoir Excel "lever le crayon" pour les tableaux/graphiques/parcelles ont l'UDF retour CVErr(xlErrNull).
C'est plutôt bizarre depuis un la formule de la cellule qui renvoie NA() entraînera Excel à "lever le crayon"; mais une fonction qui retourne CVErr(xlErrNA), ne PAS faire la même chose. Heureusement, CVErr(xlErrNull).
OriginalL'auteur Rocky Scott
J'ai eu le même problème. Donc, ce que j'ai fait était de créer une variable dichotomique et définissez égal à la fonction..
La fonction que j'avais pris quelques variables, puis affichée dans une boîte de message et je ne voulais pas retourner toutes les valeurs j'ai donc fait ceci:
x = myfunction(a,b)
Il a parfaitement fonctionné.
OriginalL'auteur user2719206
Vous devez retourner une erreur, comme ceci:
Dans une cellule, il affiche comme
#VALUE!
, qui a l'avantage de se propageant à travers des formules dans la feuille de calcul (assurez-vous que l'utilisateur sait qu'il y a une erreur), alors qu'il n'est pas compté par certaines fonctions telles que leCOUNT
. Notez queCOUNTA
toujours compte de ces cellules.OriginalL'auteur Ronan Paixão