نحوه مرتب سازی محدوده با استفاده از VBA در اکسل (6 مثال)

  • این را به اشتراک بگذارید
Hugh West

دانستن نحوه مرتب‌سازی محدوده با استفاده از VBA در اکسل باعث صرفه‌جویی در زمان و تلاش در محاسبات روزانه ما می‌شود. اگرچه اکسل به طور پیش فرض یک تسهیلات مرتب سازی را فراهم می کند. با استفاده از Range.Sort روش ، به چندین پارامتر برای مرتب سازی مجموعه داده با گزینه های بیشتر از حد معمول دسترسی پیدا می کنیم.

دانلود کتاب تمرین تمرین

این کتاب تمرین را برای تمرین در حین خواندن این مقاله دانلود کنید.

محدوده مرتب سازی در Excel.xlsm

مقدمه ای بر بیانیه Range.Sort در Excel VBA

هدف: مرتب سازی محدوده ای از داده های سلولی.

Syntax:

عبارت . مرتب سازی ( Key1 , Order1 , Key2 , Type , Order2 , Key3 , Order3 , Header , OrderCustom , MatchCase ، Orientation ، SortMethod ، DataOption1 ، DataOption2 ، DataOption3 )

در اینجا، عبارت نماینده یک شی Range است، به عنوان مثال، یک سلول، یک ردیف، یک ستون، یا مجموعه ای از سلول ها.

Arguments:

ما باید سه پارامتر اصلی را برای روش Range.Sort ارائه دهیم. آنها عبارتند از-

Key – محدوده سلول‌ها از ستون‌های تک یا چندتایی که باید مرتب کنیم.

Order – ترتیب مرتب‌سازی را مشخص کنید صعودی یا نزولی.

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

6 مثال برای مرتب سازی محدوده در Excel VBA

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

1. مرتب کردن محدوده تک ستونی با استفاده از Excel VBA

در این مثال، افراد را از پیرترین به کوچکترین مرتب می کنیم . بیایید مراحل استفاده از محدوده را دنبال کنیم. روش مرتب‌سازی که ستون سن را در <1 مرتب می‌کند>ترتیب نزولی .

مراحل:

  • به برگه Developer در Excel Ribbon<2 بروید> برای کلیک کنید بر روی Visual Basic

  • سپس گزینه Module را انتخاب کنید از درج تب برای باز کردن ماژول جدید .

اکنون، کد خود را در مرتب سازی محدوده ستون سن .

1.1 ستون با سربرگ

کد زیر را در ویرایشگر کد تصویری قرار دهید.

7671

F5 را فشار دهید یا روی دکمه Run کلیک کنید تا کد را اجرا کنید.

توضیح:

در کد بالا، ما قرار داده ایم-

Expression (Range object)=Range(“D4:D11”); ستون سن با سرصفحه در سلول D4 و مقدار در D5:D11.

Key = Range("D4"); کلید برای مرتب‌سازی.

Order= xlDescending; همانطور که می‌خواهیم مقادیر را از بزرگترین به پایین‌ترین مرتب کنیم ترتیب مرتب‌سازی را تنظیم می‌کنیم به صورت نزولی.

Header =xlYes; در اسکرین شات زیر، می بینیم که مجموعه داده دارای است سربرگ برای هر یک از ستون ها.

1.2 ستون بدون سربرگ

موارد زیر را قرار دهید کد در ویرایشگر کد تصویری.

8357

F5 را فشار دهید یا روی دکمه Run کلیک کنید تا اجرای کد.

توضیح:

در کد بالا، ما قرار داده ایم-

Expression (Range object)=Range(“D4 :D10")؛ ستون age بدون سرصفحه دارای مقادیر در D4:D10.

کلید = محدوده ("D4")؛ کلید برای مرتب‌سازی.

Order= xlDescending; همانطور که می خواهیم مقادیر را از بزرگترین به کمترین مرتب کنیم ترتیب مرتب سازی را نزولی تنظیم می کنیم.

Header =xlNo; در تصویر زیر می بینیم که مجموعه داده هیدر ندارد.

محتوای مرتبط: نحوه مرتب سازی ستون ها در اکسل بدون ترکیب داده ها (3 روش)

2. استفاده از کد VBA برای مرتب‌سازی محدوده ستون‌های چندگانه در اکسل

برای نمایش مرتب‌سازی در چند ستون ، باید تغییر خود را انجام دهیم. 1>مجموعه داده کمی. ما درج کردیم چند جدید ردیف . در مجموعه داده اصلاح شده، ردیف های 7، 8، و 9 دارای مقادیر همان برای تاریخ تولد و سن هستند. اما سه نام مختلف . این نام ها به ترتیب خاص نیستند صعودی یا نزولی.

در این مثال، نام‌ها را به ترتیب صعودی ترتیب می‌دهیم. بیایید کد زیر را در ویرایشگر اساسی ویژوال اجرا کنیم:

2148

توضیح:

در بالا اسکرین شات، می‌توانیم ببینیم که سن‌های ستون D به ترتیب نزولی مرتب شده‌اند. ما دو پارامتر دیگر را در کد قبلی خود اضافه کردیم.

Key2: =Range("B4") ، کلید مرتب‌سازی نام‌ها.

Order2: =xlAscending ، ترتیب برای اسمهای کوتاه .

در نتیجه، نامها را در ردیف های 7، 8 و 9 اکنون بر اساس حروف الفبا به ترتیب صعودی مرتب شده اند.

در تصویر زیر، را تغییر دادیم. مقدار پارامتر Order2 برای مرتب کردن نام ها را به ترتیب نزولی .

بیشتر بخوانید: نحوه مرتب سازی چندین ستون در اکسل (5 رویکرد سریع)

3. برای مرتب‌سازی محدوده ستون در Excel VBA روی سرصفحه دوبار کلیک کنید

ویژگی مرتب‌سازی پیش‌فرض اکسل اجازه نمی‌دهد مقادیر یک ستون را بر اساس <1 مرتب کنید>دوبار کلیک کردن روی هدر ستون . اما با استفاده از کد VBA می توانیم آن را محقق کنیم. بیایید این عملکرد را با اعمال کد زیر نشان دهیم.

2707

در این کد، ما از رویداد قبل از DoubleClick برای غیرفعال کردن دوبار معمول کلیک <2 استفاده کردیم> که برای شروع حالت ویرایش سلول است. با این اتفاقدر حال اجرا، اگر دوبار کلیک کنیم روی هر یک از سرصفحه های ستون داده های ستون را به ترتیب صعودی مرتب می کند.

بیشتر بخوانید: VBA برای مرتب‌سازی ستون در اکسل (4 روش)

خوانده‌های مشابه:

  • نحوه اضافه کردن دکمه مرتب سازی در اکسل (7 روش)
  • مرتب سازی لیست منحصر به فرد در اکسل (10 روش مفید)
  • چگونه برای استفاده از تابع مرتب سازی در Excel VBA (8 مثال مناسب)
  • مرتب سازی موارد تکراری در اکسل (ستون ها و ردیف ها)
  • مرتب سازی تصادفی در اکسل ( فرمول ها + VBA)

4. مرتب سازی محدوده ستون بر اساس رنگ پس زمینه با استفاده از Excel VBA

ما می توانیم محدوده ای از سلول ها را در یک ستون بر اساس بر اساس رنگ پس زمینه<آنها مرتب کنیم 2>. برای انجام این کار، باید یک یک پارامتر با نام SortOn که دارای مقدار xlSortOnCellColor است را اضافه کنیم. برای نشان دادن مرتب‌سازی، ابتدا رنگ‌های پس‌زمینه مختلف را در ردیف‌های مجموعه داده خود قرار می‌دهیم.

سپس در Visual Basic ویرایشگر کد کد زیر را کپی کنید و F5 را فشار دهید تا آن را اجرا کنید.

2059

در تصویر زیر، می‌توانیم مجموعه داده‌های مرتب شده را مشاهده کنیم. روی رنگ پس زمینه آنها.

توضیح:

  • در این مثال، ما کاربرگ را <2 نامگذاری کردیم>" پس زمینه ". بنابراین، در کد، " پس زمینه " را به عنوان نام کاربرگ فعال خود قرار می دهیم.
  • ما B4 را به عنوان کلید تنظیم می کنیم. و B4:D10 به عنوان محدوده . کد داده ها را بر اساس کلید مرتب می کند.
  • از آنجایی که ما پارامتر سرصفحه را مشخص نکردیم، کد برای بدون هدر پیش فرض اجرا می شود.
  • ما پارامتر order را به صورت صعودی تنظیم کردیم، بنابراین داده ها را از مقادیر پایین تر به بالاتر مرتب کرد .

بیشتر بخوانید: نحوه مرتب سازی بر اساس رنگ در اکسل (4 معیار)

5. اعمال کد VBA برای مرتب سازی محدوده ستون بر اساس رنگ قلم

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

برای مرتب کردن مجموعه داده بر اساس رنگ قلم، کد زیر را اعمال کنید.

3424

توضیح:

  • در این برای مثال، ما کاربرگ را " fontcolor " نامگذاری کردیم. بنابراین، در کد، " fontcolor " را به عنوان نام کاربرگ فعال خود قرار می دهیم.
  • ما B4 را به عنوان کلید تنظیم می کنیم. و B4:D11 به عنوان محدوده . کد داده ها را بر اساس کلید مرتب می کند.
  • در این مثال، ما پارامتر هدر را نیز به صورت xlYes مشخص کردیم.
  • در اینجا، ترتیب را تنظیم می کنیم. پارامتر به صورت صعودی، بنابراین داده ها را از مقادیر پایین تر به بالاتر مرتب می کند .
  • مقدار SortOn پارامتر است
  • پارامتر orientation مقدار xlTopToBottom را همانطور که اجباری است نگه می‌دارد.
  • Color برای مرتب‌سازی بر اساس عبارت RGB است که ارزش دارداز 0 تا 255 .

بیشتر بخوانید: نحوه مرتب سازی دو ستون در اکسل برای مطابقت (هر دو دقیق) و تطابق جزئی)

6. تغییر جهت به مرتب سازی محدوده با استفاده از Excel VBA

با استفاده از پارامتر orientation ، می توانیم نحوه مرتب سازی داده ها را تغییر دهیم. در این مثال، ما داده داده خود را به مرتب سازی افقی منتقل کرده ایم.

بیایید کد زیر را در ویرایشگر ویژوال بیسیک زیر فشار دهید و F5 را فشار دهید تا اجرا شود.

9108

در اینجا داده ها را بر اساس ردیف سن مرتب کردیم. 2>به ترتیب صعودی از چپ به راست . در کد، پارامتر orientation را به عنوان xlSortRows تنظیم می کنیم.

محتوای مرتبط: چگونه ستون های متعدد را در اکسل مرتب کنیم خودکار (3 روش)

چیزهایی که باید به خاطر بسپارید

  • پارامتر SortOn که برای مرتب کردن<2 استفاده کردیم> محدوده ستون بر اساس رنگ پس زمینه و رنگ قلم فقط می تواند توسط شیء کاربرگ استفاده شود. ما نمی‌توانیم آن را با محدوده شی استفاده کنیم.
  • رویداد BeforeDoubleClick داده‌ها را فقط به صورت صعودی مرتب می‌کند.

نتیجه گیری

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

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