فهرست مطالب
برای مرتب سازی در اکسل با VBA ، باید از روش Range.Sort استفاده کنید. در این مقاله، نحوه مرتب کردن ستون در اکسل را با روش Range.Sort VBA به شما نشان خواهیم داد.
دانلود Workbook
می توانید کتاب تمرین رایگان Excel را از اینجا دانلود کنید.
مرتب سازی ستون با VBA.xlsm
روشRange.Sort در اکسل VBA
Range.Sort روش در VBA محدوده ای از مقادیر را در اکسل مرتب می کند. در اینجا Range یک متغیر شی است که محدوده سلول هایی را که می خواهیم به ترتیب صعودی یا نزولی مرتب کنیم را مشخص می کند.
در زیر پارامترهایی وجود دارد که باید بدانید. در مورد هنگام کار با این روش.
پارامتر | ضروری/ اختیاری | نوع داده | توضیح |
---|---|---|---|
Key | اختیاری | Variant | محدوده یا ستونی را مشخص می کند که مقادیر آن باید مرتب شوند. |
سفارش | اختیاری | XlSortOrder | ترتیب انجام مرتب سازی را مشخص می کند.
|
Header | اختیاری | XlYesNoGuess | مشخص می کند که آیا ردیف اول شامل سرصفحه است یا خیر .
|
4 روش در پیادهسازی VBA برای مرتبسازی ستون در اکسل
در این بخش، نحوه مرتبسازی یک ستون با و بدون هدر ، چند ستون با و بدون هدر و نحوه مرتب سازی فقط با دوبار کلیک کردن روی سرصفحه در یک ستون در اکسل.
1. VBA را برای مرتب کردن یک ستون بدون سرصفحه در اکسل جاسازی کنید
اگر می خواهید یک ستون را در کاربرگ اکسل خود با کد VBA مرتب کنید، سپس از مراحل زیر.
این ستون ماست که با کد VBA مرتب می کنیم.
مراحل:
- Alt + F11 را روی صفحه کلید خود فشار دهید یا به برگه Developer -> Visual Basic برای باز کردن Visual Basic Editor .
- در پنجره کد پاپ آپ، از نوار منو ، روی درج -> Module .
- کد زیر را کپی کرده و در پنجره کد قرار دهید.
9545
کد شما اکنون آماده اجرا است.
اینجا،
- Key1:=Range("B5") → مشخص شده B5 برای اینکه کد بداند کدام ستون را باید مرتب کند.
- Order1:=xlAscending → ترتیب را به صورت xlAscending برای مرتب کردن ستون به ترتیب صعودی مشخص کرد. اگر می خواهید ستون را به ترتیب نزولی مرتب کنید، به جای آن xlDescending را بنویسید.
- Header:= xlNo →از آنجایی که ستون ما هدر ندارد، آن را با گزینه xlNo مشخص کردیم.
- Press F5 در صفحه کلید خود یا از نوار منو Run -> Sub/UserForm را اجرا کنید. همچنین میتوانید روی نماد کوچک Play در نوار منوی فرعی کلیک کنید تا ماکرو اجرا شود.
میبینید که شما ستون اکنون به ترتیب صعودی مرتب شده است .
توجه کنید که در اینجا ما محدوده داده را به صورت دستی به صورت Range("B5:B15" تعریف کرده ایم. ) .
اگر می خواهید داده ها را با افزودن یا حذف مقادیر تغییر دهید، می توانید کد زیر را اجرا کنید که به طور خودکار بر اساس سلول های مجموعه داده به روز می شود.
2137
توجه کنید که در عوض برای تعریف محدوده به صورت دستی توسط Range("B5:B15") ، نوشته ایم Range( "B5", Range("B5"). End(xlDown)) .
این ستون را بر اساس آخرین سلول پر شده در آن مرتب می کند. اگر سلولهای خالی وجود داشته باشد، دادهها فقط تا اولین سلول خالی در نظر گرفته میشوند.
بیشتر بخوانید: VBA برای مرتبسازی جدول در اکسل (4 روش)
2. ماکرو VBA را برای مرتب کردن یک ستون با سربرگ درج کنید
در بخش قبل، مجموعه داده ای از یک ستون بدون سرصفحه داشتیم، اما اکنون a داریم. ستون با هدر .
این بار یاد می گیریم که چگونه آن را با ماکرو VBA مرتب کنیم.
مراحل:
- به همان روش قبلی، Visual Basic Editor را باز کنیداز تب Developer و Insert a Module در پنجره کد.
- در پنجره کد، کد زیر را کپی کرده و آن را جایگذاری کنید.
7353
کد شما اکنون آماده اجرا است.
اینجا،
- Key1:=Range(“ B5") ← B5 مشخص شد تا کد بداند کدام ستون را باید مرتب کند.
- Order1:=xlنزولی → این بار ستون را در مرتب سازی می کنیم. ترتیب نزولی ترتیب را به صورت xlنزولی مشخص کرد.
- Header:= xlYes → از آنجایی که ستون ما این بار سرصفحه دارد، بنابراین آن را با xlYes مشخص کردیم گزینه.
- این کد را اجرا کنید و ستون را دریافت خواهید کرد که هدر به ترتیب نزولی مرتب شده است. .
بیشتر بخوانید: چگونه لیست باکس را با VBA در اکسل مرتب کنیم (راهنمای کامل)
مطالب مشابه:
- نحوه مرتب سازی آدرس IP در اکسل (6 روش)
- [حل شد!] مرتب سازی اکسل کار نمی کند (2 راه حل)
- نحوه اضافه کردن دکمه مرتب سازی در اکسل (7 روش)
- مرتب سازی رنگ e استفاده از VBA در اکسل (6 مثال)
- نحوه مرتب سازی بر اساس نام در اکسل (3 مثال)
3. ماکرو VBA برای مرتبسازی چندین ستون با یا بدون سربرگ
همچنین میتوانید ستونهای متعدد در مجموعه داده خود را با کد VBA مرتب کنید.
مراحل:
- همانطور که قبلا نشان داده شد، Visual Basic Editor را از برگه Developer باز کنید و Insert یک ماژول در پنجره کد.
- در پنجره کد، کد زیر را کپی کرده و آن را جایگذاری کنید.
2482
کد شما اکنون آماده اجرا است.
در اینجا،
.SortFields.Add Key:=Range("B4")، Order:=xlAscending
.SortFields.Add Key:=Range("C4" ”)، Order:=xlAscending
با این دو خط، Cell B4 و C4 را برای مرتب سازی دو ستون مرتبط با آنها به ترتیب صعودی .
از آنجایی که ما در مجموعه داده خود هدر داریم، Header = xlYes را مشخص کردیم، در غیر این صورت Header = را می نوشتیم. xlNo در داخل کد.
- این کد را اجرا کنید و ستون های را با هدر که به ترتیب صعودی مرتب شده اند دریافت خواهید کرد. .
4. ماکرو برای مرتبسازی دادهها با دوبار کلیک کردن روی هدر در اکسل
اگر میخواهید به راحتی دادهها را فقط با دوبار کلیک کردن روی هدر مرتب کنید، میتوانید این کار را با <انجام دهید. 1>VBA کد.
مراحل:
- راست کلیک کنید در برگه برگه .
- از لیست گزینه های ظاهر شده، روی View Code کلیک کنید.
- پنجره کد ظاهر می شود، کد زیر را کپی کرده و در آنجا قرار دهید.
9644
- ذخیره کد.
- اکنون به کاربرگ مورد علاقه برگردید و اگر روی سرصفحه ها دوبار کلیک کنید خواهید دید که ستون ها در حال سازماندهی مجدد هستند.
بیشتر بخوانید: نحوه مرتب سازی و فیلتر کردن داده ها در اکسل (راهنمای کامل)
چیزهایی که باید به خاطر بسپارید
- شما می توانید یک محدوده با نام ایجاد کنید و زمانی که محدوده ای از مراجع سلولی را در داخل ارسال می کنید از آن استفاده کنید. روش مرتب سازی . به عنوان مثال، اگر می خواهید محدوده A1:A10 را مرتب کنید، به جای اینکه هر بار آن را در داخل کد ارسال کنید، می توانید یک محدوده نامگذاری شده از آن ایجاد کنید، مانند " SortRange " و از آن با روش Range.Sort مانند Range("SortRange") استفاده کنید.
- اگر مطمئن نیستید که مجموعه داده شما دارای هدر است یا خیر. یا خیر، می توانید به سیستم اجازه دهید با استفاده از پارامتر xlGuess آن را تعیین کند.
نتیجه گیری
این مقاله به شما نشان داد که چگونه ستون را در اکسل VBA مرتب کنید. امیدوارم این مقاله برای شما بسیار مفید بوده باشد. در صورت داشتن هرگونه سوال در مورد موضوع، می توانید بپرسید.