فهرست مطالب
در این آموزش 3 روش مختلف برای برجسته کردن پویا سطر و ستون یک سلول انتخاب شده در اکسل را خواهید آموخت.
هنگام مشاهده یک کاربرگ بزرگ برای مدت طولانی، شما ممکن است در نهایت ردیابی مکان نما و داده هایی که به آنها نگاه می کنید را از دست بدهد. برای اینکه بدانید در هر لحظه دقیقاً کجا هستید، اکسل را دریافت کنید تا به طور خودکار سطر و ستون فعال را برای شما برجسته کند! به طور طبیعی، برجسته سازی باید پویا باشد و هر بار که سلول دیگری را انتخاب می کنید تغییر کند. اساساً هدف ما این است:
برجستگی خودکار سطر و ستون سلول انتخاب شده با VBA
این مثال نشان می دهد که چگونه می توانید یک ستون و ردیف فعال را با برنامه VBA برجسته کنید. برای این کار، از رویداد SelectionChange شی Worksheet استفاده خواهیم کرد.
ابتدا، رنگ پسزمینه تمام سلولهای صفحه را با تنظیم <پاک میکنید. ویژگی 1>ColorIndex به 0. و سپس، کل سطر و ستون سلول فعال را با تنظیم ویژگی ColorIndex آنها به شماره فهرست برای رنگ مورد نظر برجسته میکنید.
Private Sub Worksheet_SelectionChange (ByVal Target As Range) اگر Target.Cells.Count > 1 سپس از Sub Application.ScreenUpdating = نادرست 'پاک کردن رنگ تمام سلول ها Cells.Interior.ColorIndex = 0 با Target' برجسته کردن سطر و ستون سلول انتخاب شده .EntireRow.Interior.ColorIndex = 38.EntireColumn.Interior.ColorIndex = 24 End With Application.ScreenUpdating = True End Subسفارشی کردن کد
اگر می خواهید کد را برای نیازهای خود سفارشی کنید، این نکات کوچک ممکن است مفید باشند:
- کد نمونه ما از دو رنگ مختلف که در گیف بالا نشان داده شده است استفاده می کند - شاخص رنگ 38 برای ردیف و 24 برای ستون. برای تغییر رنگ هایلایت ، کافی است آن ها را با کدهای ColorIndex که انتخاب می کنید جایگزین کنید.
- برای رنگ آمیزی ردیف و ستون به همان روش ، از همان کد استفاده کنید. شماره فهرست رنگ برای هر دو.
- فقط برای برجسته کردن ردیف فعال ، این خط را حذف یا نظر دهید: .EntireColumn.Interior.ColorIndex = 24
- برای اینکه فقط ستون فعال را برجسته کنید، این خط را حذف یا نظر دهید: .EntireRow.Interior.ColorIndex = 38
نحوه اضافه کردن کد به کاربرگ خود
برای اینکه کد به صورت بی صدا در پس زمینه یک کاربرگ خاص اجرا شود، باید آن را در پنجره کد متعلق به آن کاربرگ وارد کنید، نه در ماژول معمولی. برای انجام آن، این مراحل را انجام دهید:
- در کتاب کار خود، Alt + F11 را فشار دهید تا به ویرایشگر VBA برسید.
- در Project Explorer در سمت چپ، شما فهرستی از همه کتابهای کار باز و کاربرگهای آنها را مشاهده خواهید کرد. اگر آن را نمی بینید، از میانبر Ctrl + R برای مشاهده پنجره Project Explorer استفاده کنید.
- کتاب کار مورد نظر را پیدا کنید. در Microsoft Excelپوشه Objects ، روی برگه ای که می خواهید برجسته سازی را در آن اعمال کنید، دوبار کلیک کنید. در این مثال، برگ 1 است.
- در پنجره کد در سمت راست، کد بالا را جایگذاری کنید.
- فایل خود را به عنوان کتاب کار فعال شده ماکرو ذخیره کنید. (xlsm.).
مزایا : همه چیز در backend انجام می شود. هیچ تنظیمات / سفارشی سازی در سمت کاربر مورد نیاز نیست. در تمام نسخههای اکسل کار میکند.
مشکلات : دو جنبه منفی وجود دارد که این تکنیک را تحت شرایط خاص غیرقابل اجرا میکند:
- کد پسزمینه را پاک میکند. رنگها تمام سلولهای کاربرگ. اگر سلول های رنگی دارید، از این راه حل استفاده نکنید زیرا قالب بندی سفارشی شما از بین می رود.
- اجرای این کد عملکرد لغو را در برگه مسدود می کند شما نمی توانید با فشار دادن Ctrl + Z یک عمل اشتباه را لغو کنید.
سطوح و ستون فعال را بدون VBA برجسته کنید
بهترین چیزی که می توانید برای برجسته کردن سطر انتخاب شده داشته باشید و /یا ستون بدون VBA قالب بندی شرطی اکسل است. برای تنظیم آن، این مراحل را انجام دهید:
- مجموعه داده خود را انتخاب کنید که در آن برجسته سازی باید انجام شود.
- در برگه Home ، در Styles را گروه کنید، روی New Rule کلیک کنید.
- در کادر محاوره ای New Formatting Rule ، استفاده از فرمولی برای تعیین اینکه کدام سلول ها را انتخاب کنید فرمت .
- در مقادیر فرمت که این فرمول استدرست است کادر، یکی از این فرمول ها را وارد کنید:
برای برجسته کردن ردیف فعال :
=CELL("row")=ROW()
برای برجسته کردن ستون فعال :
=CELL("col")=COLUMN()
برای برجسته کردن ردیف و ستون فعال :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
همه فرمول ها از تابع CELL استفاده می کنند تا شماره سطر/ستون سلول انتخاب شده را برگردانید.
- روی دکمه Format کلیک کنید، به برگه پر کردن بروید و رنگی را که دوست دارید انتخاب کنید.
- برای بسته شدن دوبار روی OK کلیک کنید. هر دو پنجره گفتگو.
اگر احساس میکنید به دستورالعملهای دقیقتری نیاز دارید، لطفاً به نحوه ایجاد قانون قالببندی شرطی مبتنی بر فرمول مراجعه کنید.
برای این مثال، ما OR را انتخاب کردیم. فرمولی برای سایه زدن ستون و سطر در یک رنگ. این کار کمتری نیاز دارد و برای اکثر موارد مناسب است.
متاسفانه، این راه حل به خوبی راه حل VBA نیست زیرا نیاز به محاسبه مجدد برگه به صورت دستی دارد (با فشردن کلید F9). به طور پیشفرض، اکسل یک کاربرگ را تنها پس از وارد کردن دادههای جدید یا ویرایش موجود، دوباره محاسبه میکند، اما نه زمانی که انتخاب تغییر میکند. بنابراین، شما سلول دیگری را انتخاب می کنید - هیچ اتفاقی نمی افتد. F9 را فشار دهید - برگه تازه می شود، فرمول دوباره محاسبه می شود و برجسته سازی به روز می شود.
برای اینکه کاربرگ به طور خودکار هر زمان که رویداد SelectionChange محاسبه شود. اتفاق می افتد، می توانید این کد ساده VBA را همانطور که در توضیح داده شده در ماژول کد برگه هدف خود قرار دهیدمثال قبلی:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target.Calculate End Subکد محدوده/سلول انتخاب شده را مجبور به محاسبه مجدد می کند، که به نوبه خود تابع CELL را مجبور می کند به روز شود و قالب بندی شرطی را منعکس کند. تغییر.
مزایا : بر خلاف روش قبلی، این روش بر قالب بندی موجود که به صورت دستی اعمال کرده اید تاثیر نمی گذارد.
معایب : ممکن است عملکرد اکسل را بدتر می کند.
- برای اینکه قالب بندی شرطی کار کند، باید اکسل را مجبور کنید تا فرمول را در هر تغییر انتخابی مجدداً محاسبه کند (به صورت دستی با کلید F9 یا به طور خودکار با VBA). محاسبات مجدد اجباری ممکن است اکسل شما را کند کند. از آنجایی که کد ما انتخاب را مجدداً به جای کل برگه محاسبه می کند، یک اثر منفی به احتمال زیاد فقط در کتاب های کاری بسیار بزرگ و پیچیده قابل مشاهده است.
- از آنجایی که تابع CELL در اکسل 2007 و بالاتر در دسترس است، این روش نخواهد بود. در نسخههای قبلی کار نمیکند.
سطح و ستون انتخابی را با استفاده از قالببندی شرطی و VBA برجسته کنید
در صورتی که روش قبلی سرعت کتاب کار شما را به میزان قابل توجهی کاهش دهد، میتوانید به روش متفاوتی به کار نزدیک شوید. برای محاسبه مجدد یک کاربرگ در هر حرکت کاربر، شماره سطر/ستون فعال را با کمک VBA دریافت کنید و سپس آن عدد را با استفاده از فرمول های قالب بندی شرطی به تابع ROW() یا COLUMN() ارائه دهید.
به انجام این کار،در اینجا مراحلی وجود دارد که باید دنبال کنید:
- یک برگه خالی جدید به کتاب کار خود اضافه کنید و نام آن را Helper Sheet بگذارید. تنها هدف این برگه ذخیره دو عدد است که نشان دهنده سطر و ستون حاوی یک سلول انتخاب شده است، بنابراین می توانید با خیال راحت برگه را در نقطه بعدی مخفی کنید.
- VBA زیر را در پنجره کد کاربرگ وارد کنید. جایی که می خواهید برجسته سازی را پیاده سازی کنید. برای دستورالعمل های دقیق، لطفاً به اولین مثال ما مراجعه کنید. Worksheet_SelectionChange(ByVal Target As Range) Application.ScreenUpdating = Worksheets False("Helper Sheet").Cells(2,1) = Target.Row Worksheets("Helper Sheet").Cells(2,2) = Target.Column Application.ScreenUpdating = True End Sub
کد بالا مختصات سطر و ستون فعال را در برگه ای به نام "Helper Sheet" قرار می دهد. اگر در مرحله 1 نام برگه خود را متفاوت انتخاب کرده اید، نام کاربرگ را در کد مطابق با آن تغییر دهید. شماره ردیف به A2 و شماره ستون به B2 نوشته می شود.
- در کاربرگ هدف خود، کل مجموعه داده را انتخاب کنید و یک قانون قالب بندی شرطی با فرمول های زیر ایجاد کنید. راهنمای گام به گام در مثال بالا ارائه شده است.
و اکنون، سه مورد استفاده اصلی را با جزئیات پوشش می دهیم.
چگونه ردیف فعال را برجسته کنیم
برای برجسته کردن ردیفی که مکان نما در آن لحظه قرار دارد، یک قانون قالب بندی شرطی با این تنظیم کنیدفرمول:
=ROW()='Helper Sheet'!$A$2
در نتیجه، کاربر می تواند به وضوح ببیند کدام ردیف در حال حاضر انتخاب شده است:
نحوه برجسته کردن ستون فعال
برای برجسته کردن ستون انتخابی، شماره ستون را با استفاده از این فرمول به تابع COLUMN وارد کنید:
=COLUMN()='Helper Sheet'!$B$2
اکنون، یک ستون برجسته به شما امکان میدهد به راحتی و بدون زحمت دادههای عمودی را با تمرکز کامل روی آن بخوانید.
چگونه سطر و ستون فعال را برجسته کنید
برای اینکه هر دو سطر و ستون انتخاب شده به طور خودکار در یک رنگ سایه شوند، توابع ROW() و COLUMN() را در یک فرمول ترکیب کنید:
=OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2)
داده های مربوطه فوراً در کانون توجه قرار می گیرند، بنابراین می توانید از خواندن نادرست آنها جلوگیری کنید.
مزایا : عملکرد بهینه شده. در تمام نسخههای اکسل کار میکند
مشکلات : طولانیترین راهاندازی
به این ترتیب میتوان ستون و ردیف یک سلول انتخابشده را در اکسل برجسته کرد. از شما سپاسگزارم که خواندید و مشتاقانه منتظر دیدار شما در وبلاگ ما در هفته آینده هستم!
کتاب کار را برای دانلود تمرین کنید
برجسته کردن سطر و ستون فعال (فایل xlsm.)