W tym artykule utworzymy makro do wstawiania podziałów stron na podstawie określonego warunku.
Surowe dane składają się z danych agenta, które obejmują nazwę agenta, nazwę klienta, numer telefonu i identyfikator e-mail.
Chcemy, aby podczas drukowania dane konkretnego agenta znajdowały się na osobnych stronach. Dlatego chcemy wstawić podział strony na końcu danych każdego agenta.
Wyjaśnienie logiczne
Stworzyliśmy makro „InsertingPagebreak”, aby wstawić podział strony. Dokonujemy porównania wartości 2 kolejnych komórek w pierwszej kolumnie, aby znaleźć ostatnią komórkę związaną z danym agentem i wstawić podział strony.
Wyjaśnienie kodu
ActiveSheet.ResetAllPageBreaks
Powyższy kod służy do usuwania wszelkich poprzednich podziałów stron wstawionych do arkusza.
If Cells(LngRow, LngCol).Value Cells(LngRow - 1, LngCol).Value Then
Powyższy kod służy do porównywania kolejnych komórek w pierwszej kolumnie.
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(LngRow, LngCol)
Powyższy kod służy do wstawiania podziałów stron przed określonymi komórkami.
Proszę postępować zgodnie z poniższym kodem!
Sub InsertingPagebreak() 'Deklarowanie zmiennych Dim LngCol As Long Dim LngRow, MaxRow As Long 'Wyczyść istniejące podziały strony ActiveSheet.ResetAllPageBreaks LngCol = 1 'Pobieranie numeru wiersza ostatniej komórki MaxRow = Range("A11").SpecialCells(xlCellTypeLastCell).Row 'Przechodzenie w pętlę przez wszystkie wiersze począwszy od trzynastego wiersza For LngRow = 13 To MaxRow 'Porównywanie wartości w komórce dwóch kolejnych wierszy dla określonej kolumny If Cells(LngRow, LngCol).Value Cells(LngRow - 1, LngCol).Value Then ' Wstawianie podziału strony ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(LngRow, LngCol) End If Next LngRow End Sub
Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail