انتخاب هماهنگ

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

و اگر هنگام حرکت سلول فعال در صفحه، سطر و ستون فعلی برجسته شود؟ نوعی انتخاب مختصات مانند این:

بهتر از یک خط کش، درست است؟

راه های مختلفی با پیچیدگی های متفاوت برای اجرای این کار وجود دارد. هر روشی مزایا و معایب خود را دارد. بیایید با جزئیات به آنها نگاه کنیم.

روش 1. بدیهی است. ماکرویی که سطر و ستون فعلی را برجسته می کند

واضح ترین راه برای حل مشکل ما "روی پیشانی" - ما به یک ماکرو نیاز داریم که تغییر در انتخاب برگه را ردیابی کند و کل سطر و ستون را برای سلول فعلی انتخاب کند. همچنین مطلوب است که بتوانیم در صورت لزوم این عملکرد را فعال و غیرفعال کنیم، به طوری که چنین انتخاب متقاطع ما را از وارد کردن، به عنوان مثال، فرمول ها باز نمی دارد، بلکه تنها زمانی کار می کند که در جستجوی موارد ضروری لیست را بررسی کنیم. اطلاعات این ما را به سه ماکرو (انتخاب، فعال و غیرفعال) می رساند که باید به ماژول شیت اضافه شوند.

برگه ای را با جدولی باز کنید که در آن می خواهید چنین انتخاب مختصاتی را دریافت کنید. بر روی برگه برگه کلیک راست کرده و دستور را از منوی زمینه انتخاب کنید متن منبع (کد منبع).پنجره ویرایشگر ویژوال بیسیک باید باز شود. این متن از این سه ماکرو را در آن کپی کنید:

Dim Coord_Selection به عنوان Boolean 'متغیر جهانی برای انتخاب روشن/خاموش Sub Selection_On() 'ماکرو در انتخاب Coord_Selection = True End Sub Selection_Off() 'انتخاب ماکرو خاموش Coord_Selection = پایان نادرست فرعی 'رویه اصلی که انتخاب را انجام می دهد. Private Sub Worksheet_SelectionChange(ByVal Range) Dim WorkRange به عنوان محدوده اگر Target.Cells.Count > 1 سپس از Sub 'اگر بیش از 1 سلول انتخاب شده است خارج شوید، اگر Coord_Selection = False خارج شوید سپس از Sub 'اگر انتخاب خاموش است خارج شوید، Application.ScreenUpdating = False Set WorkRange = Range خارج شوید ("A6:N300") 'آدرس محدوده کاری که در آن انتخاب قابل مشاهده است  

آدرس محدوده کاری را به آدرس خود تغییر دهید - در این محدوده است که انتخاب ما کار خواهد کرد. سپس ویرایشگر ویژوال بیسیک را ببندید و به اکسل برگردید.

میانبر صفحه کلید را فشار دهید ALT + F8برای باز کردن پنجره ای با لیستی از ماکروهای موجود. ماکرو Selection_Onهمانطور که ممکن است حدس بزنید، شامل انتخاب مختصات در برگه فعلی و ماکرو است Selection_Off - آن را خاموش می کند. در همان پنجره با کلیک بر روی دکمه پارامترهای (گزینه ها) برای راه اندازی آسان می توانید میانبرهای صفحه کلید را به این ماکروها اختصاص دهید.

مزایای این روش:

  • سهولت نسبی اجرا
  • انتخاب - عملیات بی ضرر است و به هیچ وجه محتوا یا قالب بندی سلول های صفحه را تغییر نمی دهد، همه چیز همانطور که هست باقی می ماند.

معایب این روش:

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

روش 2. اصلی. CELL + تابع قالب بندی شرطی

این روش، اگرچه چند اشکال دارد، اما به نظر من بسیار ظریف است. برای پیاده سازی چیزی فقط با استفاده از ابزارهای داخلی اکسل، ورود حداقلی به برنامه نویسی در VBA، آکروباتیک است.

این روش مبتنی بر استفاده از تابع CELL است که می تواند اطلاعات مختلفی را در مورد یک سلول داده شده ارائه دهد - ارتفاع، عرض، شماره ردیف-ستون، فرمت اعداد و غیره. این تابع دارای دو آرگومان است:

  • یک کلمه رمز برای پارامتر، مانند "ستون" یا "ردیف"
  • آدرس سلولی که می خواهیم مقدار این پارامتر را برای آن تعیین کنیم

ترفند این است که آرگومان دوم اختیاری است. اگر مشخص نشده باشد، سلول فعال فعلی گرفته می شود.

جزء دوم این روش قالب بندی شرطی است. این ویژگی بسیار مفید اکسل به شما این امکان را می‌دهد که سلول‌ها را در صورت داشتن شرایط مشخص به صورت خودکار قالب‌بندی کنید. اگر این دو ایده را در یک ایده ترکیب کنیم، الگوریتم زیر را برای اجرای انتخاب مختصات خود از طریق قالب‌بندی شرطی دریافت می‌کنیم:

  1. ما جدول خود را انتخاب می کنیم، یعنی آن سلول هایی که در آینده انتخاب مختصات باید در آنها نمایش داده شود.
  2. در اکسل 2003 و بالاتر، منو را باز کنید قالب – قالب بندی شرطی – فرمول (قالب - قالب بندی شرطی - فرمول). در اکسل 2007 و جدیدتر - روی برگه کلیک کنید صفحه اصلی (خانه)دکمه قالب بندی شرطی - ایجاد قانون (قالب بندی مشروط - ایجاد قانون) و نوع قانون را انتخاب کنید از یک فرمول برای تعیین اینکه کدام سلول ها را قالب بندی کنید استفاده کنید (از فرمول استفاده کنید)
  3. فرمول انتخاب مختصات ما را وارد کنید:

    =OR(CELL("ردیف")=ROW(A2)،CELL("ستون")=COLUMN(A2))

    =OR(CELL(«ردیف»)=ROW(A1)،CELL(«ستون»)=COLUMN(A1))

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

  4. مطبوعات چارچوب (فرمت) و رنگ پر را تنظیم کنید.

همه چیز تقریباً آماده است، اما یک نکته ظریف وجود دارد. واقعیت این است که اکسل تغییر در انتخاب را به عنوان تغییر در داده های برگه در نظر نمی گیرد. و در نتیجه، تنها زمانی که موقعیت سلول فعال تغییر می کند، باعث محاسبه مجدد فرمول ها و رنگ آمیزی مجدد قالب بندی مشروط نمی شود. بنابراین، اجازه دهید یک ماکرو ساده به ماژول شیت اضافه کنیم که این کار را انجام می دهد. بر روی برگه برگه کلیک راست کرده و دستور را از منوی زمینه انتخاب کنید متن منبع (کد منبع).پنجره ویرایشگر ویژوال بیسیک باید باز شود. این متن این ماکرو ساده را در آن کپی کنید:

Worksheet Sub Private_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

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

مزایای این روش:

  • قالب بندی شرطی قالب بندی جدول سفارشی را خراب نمی کند
  • این گزینه انتخاب با سلول های ادغام شده به درستی کار می کند.
  • هیچ خطری برای حذف یک ردیف و ستون کامل از داده ها در صورت کلیک تصادفی وجود ندارد حذف.
  • ماکروها کمتر مورد استفاده قرار می گیرند

معایب این روش:

  • فرمول قالب بندی شرطی باید به صورت دستی وارد شود.
  • هیچ راه سریعی برای فعال/غیرفعال کردن چنین قالب‌بندی وجود ندارد - همیشه تا زمانی که قانون حذف شود فعال است.

روش 3. بهینه. قالب بندی شرطی + ماکرو

میانگین طلایی ما از مکانیسمی برای ردیابی انتخاب روی برگه با استفاده از ماکروهای روش-1 استفاده می کنیم و با استفاده از قالب بندی شرطی از روش-2، برجسته سازی ایمن را به آن اضافه می کنیم.

برگه ای را با جدولی باز کنید که در آن می خواهید چنین انتخاب مختصاتی را دریافت کنید. بر روی برگه برگه کلیک راست کرده و دستور را از منوی زمینه انتخاب کنید متن منبع (کد منبع).پنجره ویرایشگر ویژوال بیسیک باید باز شود. این متن از این سه ماکرو را در آن کپی کنید:

Dim Coord_Selection به عنوان Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = Fase End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange as Range, CrossRange as Range Worksheet:A"7" 'آدرس рабочего диапазона с таблицей If Target.Count > 300 سپس Exit Sub If Coord_Selection = False سپس WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Intersect(Target, WorkRange) Is Nothing WorkRange، Union(Target.EntireRow، Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression، Formula1:="=1" CrossRange.FormatConditions(1ColorIndergFormatConditions. .End If End Sub را حذف کنید  

فراموش نکنید که آدرس محدوده کاری را به آدرس جدول خود تغییر دهید. ویرایشگر ویژوال بیسیک را ببندید و به اکسل بازگردید. برای استفاده از ماکروهای اضافه شده، میانبر صفحه کلید را فشار دهید ALT + F8  و مانند روش 1 عمل کنید. 

روش 4. زیبا. افزونه FollowCellPointer

MVP اکسل Jan Karel Pieterse از هلند یک افزونه رایگان در وب سایت خود ارائه می دهد. دنبال CellPointer(36 کیلوبایت)، که با رسم خطوط پیکان گرافیکی با استفاده از ماکروها برای برجسته کردن سطر و ستون فعلی، همین مشکل را حل می کند:

 

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

  • در اکسل 2003 و بالاتر - از طریق منو خدمات – افزونه ها – نمای کلی (ابزار - افزونه ها - مرور)
  • در اکسل 2007 و بعد از آن، از طریق فایل – گزینه ها – افزونه ها – برو – مرور (فایل - گزینه های اکسل - افزونه ها - رفتن به - مرور)

  • ماکروها چیست، کد ماکرو را کجا در ویژوال بیسیک وارد کنیم

 

پاسخ دهید