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:
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