Vba: jak scalić komórki o tych samych wartościach


Możesz użyć następującej składni w VBA, aby scalić komórki o tych samych wartościach w określonym zakresie:

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

To konkretne makro łączy komórki o tych samych wartościach z zakresu A1:C13 .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Scal komórki o tych samych wartościach w VBA

Załóżmy, że mamy w Excelu następujący zbiór danych, który zawiera informacje o punktach zdobytych przez różnych koszykarzy:

Załóżmy, że chcemy scalić komórki o tych samych wartościach w kolejnych wierszach.

W tym celu możemy utworzyć następujące makro:

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

VBA łączy komórki o tych samych wartościach

Należy pamiętać, że wszystkie komórki zawierające tę samą nazwę konferencji i nazwę zespołu zostały połączone.

Zauważ, że użyliśmy instrukcji cell.VerticalAlignment = xlCenter , aby określić, że tekst w scalonych komórkach powinien być wyśrodkowany w pionie.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak policzyć liczbę użytych kolumn
VBA: Jak zmienić wysokość wiersza
VBA: Jak zmienić szerokość kolumny

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *