Format un sous-ensemble du texte dans Cellule Excel en Utilisant la Formule
J'Ai construit une chaîne à l'aide d'une formule dans excel. comme un exemple
La cellule C3 contient le texte "Langues"
La Cellule C4 = "L'Anglais, L'Espagnol,L'Allemand, Le Français"
Mon Forumla = C3 & ":" & CHAR(10) & C4
Le texte de votre choix serait:
Langues:
L'Anglais, L'Espagnol, L'Allemand, Le Français
(où le texte en gras serait effectivement un peu de couleur, comme le rouge)
Est-il un moyen de le faire dans Excel (modification partielle de la mise en forme du texte) .
J'Ai essayé une formule... (ne fonctionne Pas)
Function formatText(InText As Range)
'Set font color
InText.Characters(1.5).Font.Color = Red
'InText.Characters((InStr(1, ":", InText) + 1), (Len(InText) - InStr(1, ":", InText))).Font.ColorIndex = 3
End Function
+1 problème intéressant / déficit de l'application
OriginalL'auteur Hightower | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
Votre posté fonction avec le travail si et seulement si
Sub
(c'est à dire, comme d'autres l'ont mentionné, non pas comme un UDF)Et
InText
sont des constantes de chaîne. (C'est le point essentiel de ma réponse)Il ne fonctionnera pas pour toutes les cellules dans la gamme
InText
contenant une formule. Autant que je sache, vous ne pouvez pas formater partie d'une chaîne de caractères retournée par une formule.BTW j'aimerais être tort sur ce!
Oui.. je Comprends ce que vous dites... alors, comment voulez-vous jeter une formule de sortie d'une chaîne de sorte que vous pouvez appliquer la mise en forme du texte?
OriginalL'auteur chris neilsen
Concernant Hightower à la question "comment voulez-vous jeter une formule de sortie d'une chaîne de sorte que vous pouvez appliquer la mise en forme du texte?"
À "jeter" la sortie de, une formule, de sorte que vous pouvez appliquer la mise en forme du texte, vous devez écrire la valeur renvoyée par la formule dans la feuille de calcul, puis appliquer la mise en forme de la valeur que vous avez écrit. Vous pouvez soit écrire la valeur dans la cellule contenant la formule (qui va effacer la formule), ou vous pouvez écrire la valeur dans un endroit différent dans la feuille de calcul (ce qui permettra de conserver la formule, mais ensuite, vous serez en mesure de voir double).
Puis
Cell_Format range("$A$1")
va remplacer la formule dans la cellule $A$1 avec une constante de chaîne et de changer la couleur de la première cinq caractères en rouge.Si vous voulez faire cela pour une gamme de plus d'un cellulaire, d'ajouter ce code à la ci-dessus:
OriginalL'auteur tpkaplan
Vous avez besoin pour utiliser ce code:
Si vous voulez la rendre souple, de sorte que seul le (entièrement) de la deuxième ligne est en rouge, utilisez ce code:
Noter que votre fonction doit être appelée à partir de VBA, c'est à dire vous ne pouvez pas l'utiliser comme Défini par l'Utilisateur-Fonction! Udf ne peut retourner un résultat, mais ne jamais modifier une cellule!
OriginalL'auteur Peter Albert
Vous ne pouvez pas appeler directement les ci-dessous UDF dans l'interface d'Excel. Pour cela, vous devrez utiliser un événement que l'UDF ne peut pas changer la caractéristique physique d'une cellule. Pour plus de détails, vous pouvez lire ce lien. http://support.microsoft.com/kb/170787
OriginalL'auteur