Excel المحتوى الشرطي / التنسيق للطباعة مقابل الشاشة وكسر الصفحات
-
19-09-2019 - |
سؤال
لدي ماكرو نشر VBA في Excel الذي يولد مصنف منشور يعتمد على ورقة عمل تكوين رئيسية وعدد من أوراق العمل مع البيانات. النسخة المنشورة بيانات مستقيمة، لا تزال مهيأة، ولكن دون أي صيغ ومع بعض الملاحظات ومعلومات أساسية قمعت. أساسا، يحتوي التكوين الرئيسي على جدول أسماء ورقة العمل والنطاقات المراد نشرها.
لجعل النسخة المنشورة قابلة للطباعة، تحتاج بعض أوراق العمل إلى فواصل الصفحة المدرجة. أدرك أنني أستطيع إدراجها بناء على نفس التكوين، ويمكنني أيضا تغيير اتجاه الطباعة والهوامش من ورقة عمل معينة، عن طريق إضافة عدد قليل من الأعمدة إلى ورقة سيدتي.
هنا يأتي قليلا صعبة. إذا كان لدى الجدول بعض فواصل هذه الصفحة المدرجة أثناء عملية النشر، فسأود إدراج صف إعلامي قبل استراحة الصفحة التي تشير إلى أن الجدول يستمر في الصفحة التالية. لكنني أريد فقط أن يظهر هذا في الإصدار المطبوع، لا يتم عرضه في شاشة العرض المضمنة.
هل هناك طريقة للقيام بذلك؟
المحلول
أولا، أدخل صف وإخفائه قبل استراحة الصفحة. ثم، يمكنك استخدام BeforePrint
حدث في المصنف للعثور على جميع الصفوف مع نص "انظر الصفحة التالية" في ذلك، ثم إظهارهم.
Sub Workbook_BeforePrint(cancel as Boolean)
Dim rngCell as Range
set rngCell = ActiveSheet.UsedRange.Find("See Next Page")
while not rngCell is Nothing
if not rngCell is Nothing then
rngCell.EntireRow.Hidden = false
end if
set rngCell = ActiveSheet.UsedRange.FindNext()
loop
End Sub
سيؤدي هذا إلى حد ما كنت بحاجة إلى الذهاب، ومع ذلك، سيتركك عرضة لقضية حقيقة أنه لا يوجد AfterPrint
. وبعد لذلك، ما يمكنك القيام به هو ما يلي:
Sub Workbook_BeforePrint(cancel as Boolean)
Application.EnableEvents = false
'Unhide rows here
if cancel then
Workbook.PrintPreview()
else
Workbook.PrintOut()
end if
'Rehide rows here
Application.EnableEvents = True
End Sub
لاحظ أن cancel
سيخبرك بشكل أساسي إذا كانت معاينة طباعة أو أمر طباعة فعلي. نوعها جدا من ذلك، على ما أعتقد.