ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
31 visibility
موضوع: آفیس توسط:

دیوید در حال برگزاری انتخابات برای یک جامعه حرفه ای است و فهرست رای دهندگان واجد شرایط یک برگه است. تقریباً 1200 واجد شرایط رای دادن وجود دارد، بنابراین چاپ بیش از بیست صفحه است. دیوید یک پاورقی با شماره صفحه دارد - که مفید است - اما اگر بتواند در سرصفحه هر صفحه، نام صفحه و نام خانوادگی را در صفحه داشته باشد، عالی خواهد بود.

در اکسل هیچ راه بومی برای انجام این کار وجود ندارد. با این حال، این یک ضربه نسبی برای انجام در Word است، بنابراین یک راه حل این است که نام های مرتب شده را در یک سند Word قرار دهید و سپس هدر مورد نظر را که نام ها را نشان می دهد اضافه کنید. در حالی که این کار می تواند کارساز باشد، مطمئن شدن از اینکه نسخه Word لیست همیشه با نسخه اکسل لیست همگام است، دردسرساز می شود و بالعکس.

اگر تصمیم دارید که یک نسخه از لیست رای دهندگان را در اکسل نگه دارید، بهترین راه برای حل مشکل استفاده از یک ماکرو برای درج نام و نام خانوادگی در هدر است. بدیهی است که کد چنین ماکرویی باید مطابق با چیدمان داده ها در کاربرگ شما تنظیم شود. ماکرو زیر فرض می‌کند که نام‌ها در ستون‌های A تا C هستند و نام‌های خانوادگی (آنهایی که می‌خواهید برای سرصفحه‌ها استفاده کنید) در ستون C هستند.

Sub PrintNamesInHeader()
    Dim iPages As Integer
    Dim iPage As Integer
    Dim iHorPgs As Integer
    Dim iHP As Integer
    Dim iHPNext As Integer
    Dim iCol As Integer
    Dim iColLast As Integer
    Dim lRow As Long
    Dim lRowLast As Long
    Dim sPrtArea As String

    iCol = 1        Col A
    iColLast = 3    Col C
    With ActiveSheet
        iPages = ExecuteExcel4Macro("Get.Document(50)")
        iHorPgs = .HPageBreaks.Count + 1
        sPrtArea = .PageSetup.PrintArea

        For iPage = 1 To iPages
            iHP = ((iPage - 1) Mod iHorPgs)
            iHPNext = iHP + 1
            If iHP = 0 Then
                If sPrtArea = "" Then
                    lRow = 1
                Else
                    lRow = .Range(sPrtArea).Cells(1).Row
                End If
            Else
                lRow = .HPageBreaks(iHP).Location.Row
            End If
            If iHPNext > .HPageBreaks.Count Then
                lRowLast = .Cells(lRow, iColLast).End(xlDown).Row
            Else
                lRowLast = .HPageBreaks(iHPNext).Location.Row - 1
            End If
            .PageSetup.LeftHeader = .Cells(lRow, iCol).Value & _
              " - " & .Cells(lRowLast, iColLast)
            .PrintOut From:=iPage, To:=iPage, preview:=True
        Next
    End With
End Sub

هنگامی که ماکرو را اجرا می کنید، از هر صفحه از کاربرگ عبور می کند. سرصفحه ها برای صفحه تنظیم می شوند، سپس تک صفحه چاپ می شود و سپس صفحه بعدی بررسی و پردازش می شود.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 61 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility
ارسال شده در 27 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 27 visibility
ارسال شده در 25 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 126 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

138 نفر آنلاین
0 عضو و 138 مهمان در سایت حاضرند
بازدید امروز: 907
بازدید دیروز: 25180
بازدید کل: 20338264
...