2015-07-31 21 views
5

Mam około 4000 komórek, każdy z około 4 oddzielnymi liniami tekstu. Każda linia tekstów została wprowadzona za pomocą metody ALT + ENTER.Excel: Komórka z wieloma liniami tekstu w jednym wierszu tekstu

Czy ktoś może zaproponować sposób, komendę/metodę VBA lub Excela, aby przekonwertować każdą z tych komórek w jedną linię, z przerwami między wyrazami.

Przykład: Aktualny komórkowy 1:

  • O
  • jazda
  • Dog

Potrzeba: komórkowy 1:

  • O Konia Pies

Każda pomoc jest mile widziane

Odpowiedz

6

Spróbuj krótkie makro:

Sub dural() 
    Dim rng As Range 
    Set rng = Selection 
    rng.Replace what:=Chr(10), lookat:=xlPart, replacement:=" " 
End Sub 
6

ALT + ENTER tworzy postać zwaną vbLF (Visual Basic Line Feed). Chcesz po prostu wymienić vbLF z kosmosu, tak jak poniżej:

Sub test() 
    Dim str As String 
    str = Range("A1") 
    Debug.Print str 
    str = Replace(str, vbLf, " ") 
    Debug.Print str 
End Sub 

aby umieścić go w pętli:

Sub test() 
    dim i as integer 
    Dim str As String 

    for i = 1 to 10 '(however many you want, can also be dynamic - use XlUp if you want to) 
     str = Range("A" & i) 
     Debug.Print str 
     str = Replace(str, vbLf, " ") 
     Debug.Print str 
    next 
End Sub 
+0

Naprawiono by tylko komórkę A1. Aby użyć funkcji 'Zamień' w celu naprawienia wszystkich komórek, musisz zapętlić wszystkie komórki. –

+0

Cóż ... tak. Wystarczy umieścić go w pętli for. Mogę to dodać, jeśli uważasz, że jest to konieczne. –

+0

Czy czas tego kodu pętli ponad 4000 komórek? Jako jednorazowe ćwiczenie może być odpowiednie, ale nie sądzę, że jest to dobre podejście. –

3

myślę, że zrobi to, co chcesz:

Sub Macro1() 

    Cells.Replace What:=vbLf, Replacement:=" ", LookAt:=xlPart 

End Sub 
6

Aby to zrobić bez VBA:

Użyj funkcji Znajdź i zamień.

W polu Znajdź, przytrzymaj ALT i wpisz 0010 (kod ASCII dla linii jest 10 - nic nie zobaczysz, ale jest to nowy znak linii).

W polu Zamień, po prostu wpisz znak spacji lub dowolny ogranicznik.

Kliknij na buttton Replace all.