Comment faire une cellule Excel égal à vide, éventuellement par l'intermédiaire de code VBA
Bien sûr, vous allez répondre à cette question avec la =""
formule écrite dans ladite cellule, mais ce n'est pas mon cas.
En fait, j'ai une fonction qui fonctionne seulement si son argument est égal à une cellule vide, c'est une cellule qui a été complètement effacé en appuyant sur del
plus ou telle chose.
Évidemment je ne peux pas simplement effacer le contenu de la cellule, car il récupère les données d'une source externe et parfois j'ai besoin le contenu de la cellule pour être présent et visible dans ma feuille de calcul.
De la cellule de la formule est quelque chose comme
=if([condition], "", [formula])
mais si la valeur de la cellule est égale à ""
au lieu d'être tout simplement vide, la fonction ne fonctionne plus (au contraire, il fonctionne très bien si le contenu est égal à [formula]
).
Je ne peut pas modifier la fonction, mais je peux peut-être la rédaction d'un code VBA pour atteindre le résultat.
Suivantes Daniel Cook demande de poster mon code, voici la formule à partir de QuantLibXL's qlFloatingRateBond fonction:
=qlFloatingRateBond(,,"EUR",3,,,"obj_0005#007",2,,"Actual/365",,,"obj_0004#008",,,,,,,)
Si vous le modifier, en
=qlFloatingRateBond(,,"EUR",3,,,"obj_0005#007",2,,"Actual/365",0,,"obj_0004#008",,,,,,,)
ou
=qlFloatingRateBond(,,"EUR",3,,,"obj_0005#007",2,,"Actual/365","",,"obj_0004#008",,,,,,,)
vous obtenez Objet Gestionnaire d'erreur en raison d'un mauvais argument fourni (la modification ce qui concerne la Floors
argument, j'espère ne pas avoir fait une erreur avec les virgules et les vide-arguments par défaut...).
La seule façon de le faire pour gérer un bond sans plancher est de fournir une véritable cellule vide, mais si vous aviez une source de données externe qui renvoie une valeur dans la cellule en fonction de la présence ou de l'absence d'un étage, vous ne seriez pas en mesure de le faire fonctionner.
Oui, il s'agit de [quantlib.org/quantlibxl] (QuantLibXL) et c'est celui-ci: [quantlib.org/quantlibxl/.... La véritable fonction est écrite en C++, c'est tout ce que je sais à ce sujet.
Voici un meilleur lien pour la méthode qlFloatingRateBond Comment êtes-vous l'appel de la méthode? Montre-nous ton code.
Ouais, c'est l'un. Désolé pour mon mauvais à l'aide de la mise en forme 🙂
code fourni.
OriginalL'auteur Lisa Ann | 2013-09-18
Vous devez vous connecter pour publier un commentaire.
Il ne peut pas résoudre votre problème car je n'ai pas le QuantLibXL, mais si vous voulez supprimer toutes les cellules, qui a évalué à "", sur une feuille, vous pourriez essayer:
Cela permettra de trouver toutes les formules qui en résultent dans le texte, puis les supprimer. Remarque: cela peut échouer s'il n'en existe pas, et aussi peut être trop agressif.
Une autre astuce est de changer de formule à quelque chose comme:
Maintenant, au lieu de cellules vides, les valeurs seront une erreur (#N/A). Peut-être la bibliothèque comprend les erreurs au lieu de valeurs de 0 ou "".
Si vous voulais donc supprimer toutes les erreurs de votre fiche, vous devez modifier le code VBA ci-dessus pour trouver ensemble la formule qui en résultent dans les erreurs:
Encore une fois, si il n'en existe pas, ce serait une erreur.
Pas la meilleure solution, mais peut-être un peu de nourriture pour la pensée.
OriginalL'auteur Richard Morgan
Mauvaise nouvelle: vous ne pouvez pas. Une fois qu'une cellule contient une formule, il n'est jamais vraiment vide de l'état.
E. g. définir une cellule =A1, et vous voyez que un 0 apparaît dans la cellule; même lorsque A1 est lui-même vide.
OriginalL'auteur Bathsheba