Jak automatycznie scalić puste komórki powyżej / po lewej w programie Excel?
W tym artykule będę mówić o automatycznym scalaniu pustych komórek powyżej lub lewej, jak pokazano poniżej. Właściwie nie ma wbudowanego narzędzia, które mogłoby obsłużyć to zadanie, ale kody makr mogą.
Połącz puste miejsca powyżej | ||
![]() |
![]() |
![]() |
Połącz puste miejsca | ||
![]() |
![]() |
![]() |
Scal puste komórki powyżej na podstawie kolumny
Scal puste komórki powyżej (działa tylko dla jednej kolumny)
Scal puste komórki po lewej stronie
Scal puste komórki powyżej na podstawie kolumny
Przypuśćmy, że istnieje zakres danych w trzech kolumnach, a teraz chcesz scalić powyższe dane na podstawie kolumny C.
1. naciśnij Alt + F11 keys, aby włączyć Microsoft Visual Basic for Applications okno i kliknij wstawka > Moduł. Zobacz zrzut ekranu:
2. Następnie wklej poniższy kod do pustego skryptu. Zobacz zrzut ekranu:
VBA: Scal puste powyżej na podstawie następnej kolumny
Sub MergeCells()
'UpdatebyExtendoffice2017025
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range:", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
For Each xCell In xRg
If xCell.Value = "" Then
Range(xCell, xCell.Offset(-1, 0)).Merge
End If
Next
End Sub
3. naciśnij F5 , aby uruchomić kod, a następnie wyskakuje okno dialogowe przypominające o wybraniu zakresu do pracy. Zobacz zrzut ekranu:
4. kliknij OK, to puste komórki zostały scalone powyżej. Zobacz zrzut ekranu:
Scal puste komórki powyżej (działa tylko dla jednej kolumny)
Oto kod makra, który może scalić puste komórki powyżej w określonej kolumnie.
1. naciśnij Alt + F11 klawisze, aby włączyć Microsoft Visual Basic for Applications okno i kliknij wstawka > Moduł. Zobacz zrzut ekranu:
2. Wklej poniższy kod do skryptu. Zobacz zrzut ekranu:
VBA: Scal puste komórki powyżej
Sub mergeblankswithabove()
'UpdatebyExtendoffice20171025
Dim I As Long
Dim xRow As Long
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range (single column):", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Then
MsgBox "Only work for single column", , "KuTools For Excel"
Exit Sub
End If
xRow = xRg.Rows.Count
Set xRg = xRg(xRow)
For I = xRow To 1 Step -1
Set xCell = xRg.Offset(I - xRow, 0)
Debug.Print xCell.Address
If xCell.Value = "" Then Range(xCell, xCell.Offset(-1, 0)).Merge
Next
End Sub
3. naciśnij F5 klawisz, aby uruchomić kod, i pojawi się okno dialogowe, w którym można wybrać zakres kolumn. Zobacz zrzut ekranu:
4. Kliknij OK. Puste komórki w zaznaczeniu zostały scalone powyżej.
![]() |
![]() |
![]() |
Scal puste komórki po lewej stronie
Jeśli chcesz scalić puste komórki po lewej stronie, poniższy kod może wyświadczyć ci przysługę.
1. naciśnij Alt + F11 klawisze, aby włączyć Microsoft Visual Basic w oknie Aplikacje i kliknij wstawka > Moduł. Zobacz zrzut ekranu:
2. Następnie wklej poniższy kod do pustego skryptu. Zobacz zrzut ekranu:
VBA: Połącz puste miejsca
Sub mergeblankswithleft()
'UpdatebyExtendoffice20171025
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range:", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
For Each xCell In xRg
If xCell.Value = "" Then Range(xCell, xCell.Offset(0, -1)).Merge
Next
End Sub
3. naciśnij F5 klawisz, aby uruchomić kod, i pojawi się okno dialogowe, w którym można wybrać zakres. Zobacz zrzut ekranu:
4. kliknij OK. Puste komórki zostały scalone po lewej stronie.
Połącz puste miejsca | ||
![]() |
![]() |
![]() |
Scal te same komórki lub rozłącz komórkę
|
Najlepsze narzędzia biurowe
Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%
- Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
- Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
- Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
- Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
- Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
- Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
- Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
- Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
- Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.

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!



