2009-08-18 10 views
1

Dans Excel, je veux pouvoir casser automatiquement une cellule en 2 cellules ou plus si elles contiennent un caractère de retour à la ligne (alt + Entrée). Comment est-ce que je fais cela pour diviser la cellule en nouvelles cellules en dessous de cette rangée?Casser une cellule si elle contient un caractère de nouvelle ligne

+0

Je ne serai pas en mesure d'aider peu importe, mais pour les gens qui connaissent Excel, il pourrait être utile si vous spécifiez comment vous interagissez avec. COM? –

Répondre

1
Sub MakeTwoCellsForCellHavingLF() 
Dim currentCellValue As String, LFFoundAt As Integer 

currentCellValue = ActiveCell.Value 
LFFoundAt = InStr(1, currentCellValue, vbLf) 

If LFFoundAt <> 0 Then 
    ActiveCell.Value = Left(currentCellValue, LFFoundAt - 1) 
    ActiveCell.Offset(1).Value = Mid(currentCellValue, LFFoundAt + 1) 
End If 
End Sub 
0

Supposez que vos données soient en A1.

A2 doit contenir (S'il vous plaît excuser et supprimer les commentaires de style C.):

=FIND(CHAR(10),A1) // Location of CHAR(10), your newline. 

ASCII 10 signifie retour à la ligne. Hide Row 2.

A3 doit contenir:

=IF(
    NOT(ISERR(A2)), // Make sure there is a newline 
    LEFT(A1, A2-1), // Everything up to the newline 
    A1    // If there's no newline, original string 
    ) 

A4 doit contenir:

=IF(
    NOT(ISERR(A2)),  // Make sure there is a newline 
    RIGHT(A1, LEN(A1)-A2), // Everything after the newline 
    ""      // If there's no newline, nothing 
    ) 
Questions connexes