TOP

Scal komórki bez utraty tekstu

Opis

Załóżmy, że mamy wiele komórek, które musimy połączyć z tekstem. W standardowym zestawie Excel znajduje się podobna funkcja: "Połącz i wypośrodkuj" , ale podczas wykonywania unii pozostawia tylko tekst z najbardziej zewnętrznej komórki. Musimy więc używać do takich celów naszego własnego makra.


VBA kod makra

W tym celu otwórz edytor Visual Basic (Alt+F11), wstaw moduł VBA (Insert - Module) i skopiuj tam tekst tej procedury:

Sub MergeToOneCell()
    'moonexcel.com.ua
    Const sDELIM    As String = " "
    Dim   rCell     As Range
    Dim   sMergeStr As String
    
    If TypeName(Selection) <> "Range" Then Exit Sub
    
    With Selection
        For Each rCell In .Cells
            sMergeStr = sMergeStr & sDELIM & rCell.Text
        Next rCell
        
        Application.DisplayAlerts = False
        .Merge Across:=False
        Application.DisplayAlerts = True
        
        .Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM))
    End With
End Sub

Zapisz i wróć do Excel.

Teraz wybierz wymagane komórki i uruchom nasze makro (Alt+F8) (nazwa makra: „MergeCell”).