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

استیون یک کاربرگ با سطرها و ستون های زیادی از داده ها دارد. او با فعال کردن سلول B2 و سپس فریز کردن پنجره‌ها، سطر و ستون اول را ثابت کرده است. این آنطور که او می خواهد کار می کند. او حتی می‌تواند کتاب کار را ذخیره کرده و ببندد، و وقتی کتاب کار را دوباره باز می‌کند، پنجره‌ها هنوز یخ زده هستند. با این حال، اگر استیون یک پنجره جدید برای کتاب کار باز کند (مشاهده | پنجره | پنجره جدید)، پنجره جدید پنجره های ثابتی ندارد. از آنجایی که او در بسیاری از برگه‌های این کتاب، صفحات یخ زده دارد، باید بسیار مراقب باشد که کدام پنجره را ابتدا می‌بندد. اگر ابتدا پنجره اصلی را ببندد، وقتی کتاب کار را ذخیره می کند، همه کاربرگ های فریز نشده را ذخیره می کند. استیون به این فکر می کند که آیا راهی وجود دارد که بتوان پنجره جدید را برای حفظ تنظیمات پنجره های ثابت نگه داشت؟

هیچ تنظیمی در اکسل وجود ندارد که بتواند آنچه استیون باید اتفاق بیفتد را مدیریت کند. دلیل ذخیره نشدن پنجره های ثابت این است که FreezePanes (به همراه Zoom، Split و چند تنظیمات دیگر) ویژگی های ویندوز هستند، نه کاربرگ ها یا کتاب های کاری. هنگامی که یک پنجره جدید ایجاد می شود، ویژگی ها از پنجره اصلی به ارث نمی رسند.

با این حال، می توانید با استفاده از یک ماکرو برای انجام تنظیمات، این رفتار را دور بزنید (و مشکل استیونز را حل کنید). یک رویکرد بسیار کوتاه این است که از ابزار نوار برای ایجاد پنجره جدید خودداری کنید. در عوض، این ماکرو را به QAT اضافه کنید و از آن برای ایجاد پنجره استفاده کنید:

Sub CreateNewWindow1()
    Dim rPane As Range

    Set rPane = ActiveWindow.VisibleRange(1)
    ActiveWindow.NewWindow
    ActiveSheet.Range("B2").Select
    ActiveWindow.FreezePanes = True
End Sub

ماکرو یک پنجره جدید ایجاد می کند، سلول های قابل مشاهده را برابر با آنچه در پنجره اصلی نشان داده شده است تنظیم می کند، سلول B2 را در پنجره جدید انتخاب می کند و سپس پنجره ها را ثابت می کند.

با این حال، اگر نیازهای "انجماد پنجره" شما متنوع تر باشد، این روش ساده ممکن است کارساز نباشد. به عنوان مثال، ممکن است بخواهید راهی برای ایجاد یک پنجره جدید و مطابقت آن با هر پنجره ای که در هنگام ایجاد پنجره جدید فعال بود، داشته باشید.

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

Sub CreateNewWindow2()
    Dim iRow As Integer
    Dim iCol As Integer
    Dim rOldPos As Range

    iRow = 0
    iCol = 0
    If ActiveWindow.FreezePanes Then
        iRow = ActiveWindow.ScrollRow
        iCol = ActiveWindow.ScrollColumn
    End If
    Set rOldPos = ActiveCell
    ActiveWindow.NewWindow
    If (iRow > 0) And (iCol > 0) Then
        Cells(iRow, iCol).Select
        ActiveWindow.FreezePanes = True
    End If
    rOldPos.Select
End Sub

این کد، دوباره، می تواند برای ایجاد هر پنجره جدیدی که می خواهید استفاده شود. آن‌ها کاری را که استیون باید انجام می‌داد انجام می‌دهند زیرا تنظیمات صفحه ثابت را از پنجره فعال به پنجره جدید ایجاد شده کپی می‌کنند.

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

پاسخ شما

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

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

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

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

204 نفر آنلاین
0 عضو و 204 مهمان در سایت حاضرند
بازدید امروز: 11418
بازدید دیروز: 13001
بازدید کل: 19465712
...