Jak automatycznie dopasować wysokość wiersza scalonych komórek w programie Excel?
W programie Excel możemy szybko dostosować wysokość wiersza, aby dopasować ją do zawartości komórki za pomocą AutoFit Wysokość wiersza funkcja, ale ta funkcja całkowicie ignoruje scalone komórki. Oznacza to, że nie można zastosować rozszerzenia AutoFit Wysokość wiersza Aby zmienić wysokość wiersza scalonych komórek, należy ręcznie dostosować wysokość wiersza scalonych komórek jeden po drugim. W tym artykule mogę przedstawić kilka szybkich metod rozwiązania tego problemu.
Automatyczne dopasowanie wysokości wiersza scalonych komórek za pomocą kodu VBA
Automatyczne dopasowanie wysokości wiersza scalonych komórek za pomocą kodu VBA
Przypuśćmy, że mam arkusz roboczy z niektórymi scalonymi komórkami, jak pokazano na poniższym zrzucie ekranu, a teraz muszę zmienić rozmiar wiersza komórki, aby wyświetlić całą zawartość, poniższy kod VBA może pomóc w automatycznym dopasowaniu wysokości wiersza wielu scalonych komórek, proszę następująco:
1. Przytrzymaj ALT + F11 klucze i otwiera plik Okno Microsoft Visual Basic for Applications.
2. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.
Kod VBA: Automatyczne dopasowanie wysokości wiersza wielu scalonych komórekOption Explicit
Public Sub AutoFitAll()
Call AutoFitMergedCells(Range("a1:b2"))
Call AutoFitMergedCells(Range("c4:d6"))
Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
Dim tHeight As Integer
Dim iPtr As Integer
Dim oldWidth As Single
Dim oldZZWidth As Single
Dim newWidth As Single
Dim newHeight As Single
With Sheets("Sheet4")
oldWidth = 0
For iPtr = 1 To oRange.Columns.Count
oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
Next iPtr
oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
oRange.MergeCells = False
newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
oldZZWidth = .Range("ZZ1").ColumnWidth
.Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
.Range("ZZ1").WrapText = True
.Columns("ZZ").ColumnWidth = oldWidth
.Rows("1").EntireRow.AutoFit
newHeight = .Rows("1").RowHeight / oRange.Rows.Count
.Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
oRange.MergeCells = True
oRange.WrapText = True
.Range("ZZ1").ClearContents
.Range("ZZ1").ColumnWidth = oldZZWidth
End With
End Sub
Uwagi:
(1.) W powyższym kodzie możesz dodać nowe zakresy po prostu skopiuj Wywołaj funkcję AutoFitMergedCells (zakres („a1: b2”)) skryptu tyle razy, ile chcesz, i zmień scalone zakresy komórek na potrzebne.
(2.) I powinieneś zmienić aktualną nazwę arkusza Sheet4 do nazwy używanego arkusza.
3. Następnie naciśnij F5 klucz do uruchomienia tego kodu, a teraz możesz zobaczyć, że wszystkie scalone komórki zostały automatycznie dopasowane do ich zawartości, patrz zrzut ekranu:
Podobne artykuły:
Jak automatycznie dopasować szerokość kolumny w programie Excel?
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!