ماریا یک کاربرگ دارد که در آن میخواهد بعد از هر X ردیف، صفحه جدیدی را شروع کند. این شکست به هیچ داده ای در کاربرگ بستگی ندارد، فقط به تعداد ردیف ها بستگی دارد. (به عنوان مثال، ممکن است بخواهد بعد از هر 17 سطر یک صفحه جدید شروع کند.) ماریا از خود می پرسد که آیا راهی برای درج یک شکست صفحه تکراری وجود دارد که صرفاً به تعداد ردیف ها بستگی دارد.
هیچ راهی برای انجام این کار از طریق یک تنظیم یا از طریق هر قالب بندی شرطی وجود ندارد. تنها راهی که ما توانستیم این کار را انجام دهیم استفاده از یک ماکرو است. ماکرو زیر کمی تعامل برای افزایش انعطاف پذیری آن فراهم می کند.
Sub BreakEveryX()
Dim iGap As Integer
Dim lLastRow As Long
Dim lRow As Long
Dim sTitle As String
Dim bGo As Boolean
Dim sTemp As String
sTitle = "Set Page Breaks"
bGo = True
sTemp = InputBox("Enter rows per page:", sTitle)
iGap = Val(sTemp)
If iGap > 0 Then
sTemp = InputBox("Last row for page breaks:", sTitle)
lLastRow = Val(sTemp)
If lLastRow >= iGap Then
With ActiveSheet
.ResetAllPageBreaks
For lRow = iGap + 1 To lLastRow Step iGap
.HPageBreaks.Add Before:=.Cells(lRow, 1)
Next lRow
End With
Else
bGo = False
End If
Else
bGo = False
End If
If Not bGo Then
MsgBox Prompt:="No changes made", Title:=sTitle
End If
End Sub
تنها کاری که باید انجام دهید این است که برگهای را که میخواهید روی آن تأثیر بگذارید، نمایش دهید و سپس ماکرو را اجرا کنید. از شما پرسیده می شود که در هر صفحه چند ردیف می خواهید (برای مثال ماریا، ممکن است 17 باشد) و ردیفی که می خواهید در آن توقف کنید. سپس ماکرو تمام شکستهای صفحه موجود را حذف میکند و بعد از هر مضربی از ردیفهایی که در هر صفحه مشخص کردهاید، یک صفحه شکسته درج میکند. اگر برای ردیفهای هر صفحه عدد 0 را وارد کنید یا اگر شماره ردیف پایانی کمتر از ردیفهای هر صفحه باشد، هیچ تغییری ایجاد نمیشود و یک کادر پیام به همین منظور مشاهده میکنید.