Obtenir deux premières lignes de texte à partir d'une wraped cellule dans excel
J'ai besoin de prendre les deux premières lignes de texte à partir d'un enveloppé de cellules dans excel. Par exemple, un enveloppé cellule Excel contient le texte comme suit:
wrapedtext1
wrappedtext2
wrappedtext3
wrappedtext4
J'ai besoin que les deux premières lignes comme "wrapedtext1wrappedtext2'. Est-il possible?
Avez-vous essayé de saisir le contenu de cette cellule et de voir exactement quels sont les caractères qu'il contient, par l'impression des codes ASCII, par exemple, à l'aide de l'Asc() la fonction? Qui peut vous donner un indice quant à la façon d'obtenir ce que vous voulez.
J'ai aussi ce problème. Après le réglage de la wrapText propriété de la cellule, le contenu de la cellule est automatiquement emballé avec la largeur de la colonne. C'est à dire., nous en fait de ne pas mettre des sauts de ligne. Je suis en mesure d'extraire de 2 lignes quand nous saisir des données en appuyant sur Alt + Entrée. Mais ici, est que la seule définition de l'habillage de texte de la propriété de la cellule
Je comprends. J'ai peur que vous pouvez avoir de la difficulté ici depuis bien que vous pouvez probablement obtenir la largeur de la cellule et même la police de caractère à utiliser, VBA n'a pas (à ma connaissance) de fournir un moyen de "mesurer" le texte que vous le pouvez dans le C++ et éventuellement natif VB. Puis-je vous demander pourquoi vous avez besoin seulement les deux premières lignes? Étant donné que la largeur de la cellule (et donc, à combien s'adapte) peut facilement être changé au moment de l'exécution, il semble un peu arbitraire chose à faire?
Ce dont j'ai besoin est de valider la longueur de certaines chaînes (qui doit être affiché dans un appareil) via excel. J'ai mis toutes les propriétés de la colonne d'excel. Dans le dispositif que deux lignes seront affichées. J'ai donc besoin d'extraire la chaîne qui s'inscrit dans le dispositif.
J'ai aussi ce problème. Après le réglage de la wrapText propriété de la cellule, le contenu de la cellule est automatiquement emballé avec la largeur de la colonne. C'est à dire., nous en fait de ne pas mettre des sauts de ligne. Je suis en mesure d'extraire de 2 lignes quand nous saisir des données en appuyant sur Alt + Entrée. Mais ici, est que la seule définition de l'habillage de texte de la propriété de la cellule
Je comprends. J'ai peur que vous pouvez avoir de la difficulté ici depuis bien que vous pouvez probablement obtenir la largeur de la cellule et même la police de caractère à utiliser, VBA n'a pas (à ma connaissance) de fournir un moyen de "mesurer" le texte que vous le pouvez dans le C++ et éventuellement natif VB. Puis-je vous demander pourquoi vous avez besoin seulement les deux premières lignes? Étant donné que la largeur de la cellule (et donc, à combien s'adapte) peut facilement être changé au moment de l'exécution, il semble un peu arbitraire chose à faire?
Ce dont j'ai besoin est de valider la longueur de certaines chaînes (qui doit être affiché dans un appareil) via excel. J'ai mis toutes les propriétés de la colonne d'excel. Dans le dispositif que deux lignes seront affichées. J'ai donc besoin d'extraire la chaîne qui s'inscrit dans le dispositif.
OriginalL'auteur divz | 2012-03-27
Vous devez vous connecter pour publier un commentaire.
Oui, il pourrait être possible, mais il est PAS SIMPLE moyen pour y parvenir. Il y a beaucoup de facteurs que vous devez considérer.
1) la Hauteur de la Ligne en Pixels
2) Type de Police et la Taille
3) L'Espacement Des Lignes
4) Est la Cellule Fusionnée?
5) Est la cellule dans l'adaptation automatique de l'état
6), c'Est tout le texte en mode Normal ou faut-il tout mettre en Gras/Italique/Souligné le caractère(s) etc etc
Considérer cet instantané
Par exemple, la Hauteur de la Ligne en Pixels peuvent être dérivées à partir de
Debug.Print Range("A1").Height * (24 /18)
Taille de la police dans le cas ci-dessus peut être réalisé à partir de ce
Debug.Print Range("A1").Font.Size
Mais le problème est qu'arriverait-il dans le scénario?
À mon avis, il serait trop fastidieux de réaliser ce que vous voulez. La meilleure partie serait d'utiliser
ALT + Enter
pour insérer des sauts de ligne, puis de récupérer le texte.SUIVI
Les chaînes de caractères sont entrés dans la enveloppé de la cellule par le biais de code vba. Alors Comment insérer des données en appuyant sur alt + entrée? – 1355 4 heures
Dans un tel scénario, vous pouvez prendre une approche similaire.
NOTE: Pour le dessus de vous aurez à enregistrer une macro et de voir qu'est-ce que la police, la taille et la largeur de la colonne qui peut prendre une mise en forme particulière. Encore une fois, vous devrez tenir compte du fait que l'exemple que j'ai donné ci-dessus est pour un non de cellules mises en forme dans une nouvelle feuille. Si vous écrivez à une cellule fusionnée ou par des cellules formatées, alors vous devrez modifier le code ci-dessus en conséquence qui peut être facilement atteint par l'enregistrement d'une macro. Je suis aussi en supposant que le niveau de ZOOM est réglée à 100%
INSTANTANÉS
HTH
Sid
Bonne Question. 🙂 Probablement trouver la largeur de la cellule, puis de décider sur le nombre de mots qu'il faut aller dans chaque ligne? Permettez-moi de voir si je peux vous montrer un exemple 🙂
Merci pour votre réponse. Encore une fois un problème est là. Je ne pouvais pas insérer des sauts de ligne dans la chaîne manuellement. J'ai besoin de vérifier que le nombre de mots qui seront logés dans des deux lignes.
Exactement mon point. Vous devez d'abord décider sur la police/taille de la police utilisez-vous comme il dépendra beaucoup de ce. Comme je l'ai mentionné, il n'est pas un morceau de gâteau 🙂
Ya. J'ai déjà réglé. arial narrow et 9,5
OriginalL'auteur Siddharth Rout
Utiliser la fonction RECHERCHER:
=GAUCHE(B2,(TROUVER(CHAR(10),B2)))
OriginalL'auteur user2628294
Salut ok il y a deux façons de le faire avec du Code VBA.
Première manière. Si les Lignes sont Séparées par un espace
deuxième façon si elles sont séparées par une pause.
Ensuite, vous obtenez un tableau où toutes les lignes sont séparées, et il vous suffit de les lire...
Moosli
OriginalL'auteur Moosli
Vous pouvez faire un peu de formule compliquée dans Excel afin d'atteindre cet objectif sans code VBA.
En supposant que le texte multi-ligne est en A1. Si vous voulez juste les deux premières lignes, vous pouvez le faire:
Obtenir la première ligne:
Obtenir la deuxième ligne:
Puis il suffit d'utiliser
CONCATENATE()
à combiner ces deux.Avoir un oeil sur ce site qui vous permettent de spécifier la ligne pour obtenir:
http://www.excelblog.ca/separating-lines-from-multi-line-excel-cell/
OriginalL'auteur William Niu