حذف ستون های خالی در اکسل
گاهی جدولی مانند جدول زیر به شما تحویل می دهند و از شما می خواهند ستون های خالی را از این جدول حذف کنید.
اگر جدول شما ستون های کمی داشته باشد این کار را می توانید به صورت دستی انجام دهید ولی اگر 100 ستون داشته باشید به طور دستی حذف کردن این ستون ها کار بسیار مشکلی خواهد بود و حتی می تواند ایجاد مشکل بکند.
بعد از این آموزش فرا خواهید گرفت چطور جدول بالا را به جدول زیر تبدیل کنید.
پیش از شروع آموزش چند تذکر را یادآوری می کنیم:
1- این یک نمونه کد می باشد و شاید نیاز شما را پاسخگو نباشد.
2- قبل از اعمال این کد بر روی فایل خود، حتما و حتما از فایل خود یک کپی و پشتیبان تهیه کنید چرا که بعد از اعمال کدهای VBA فایل شما قابل بازیابی نمی باشد.
3- این کد ها را بر روی یک فایل کپی اجرا کنید و به هیچ عنوان بر روی فایل اصلی اجرا نکنید.
4- فایل کپی را حتما به صورت Excel macro-enabled workbook ذخیره کنید.
برای استفاده از این کد یک سری پیش فرض هایی را بیان می نماییم:
1)محدوده جدول خود را انتخاب کرده و نام آن را MyRange می گذاریم.مانند تصویر زیر:
2)در ستون خالی هیچ سلولی پر نمی باشد.(یعنی در ستون های خالی هیچ سلول پری نداریم) مانند تصویر بالا.
وارد محیط ویرایشگر vba شوید.(Alt+F11) مانند تصویر زیر بر روی Module کلیک کنید.
کد های زیر را مانند تصویر زیر در Module1 کپی کنید.
کد VBA حذف ستون های خالی در اکسل (Remove Empty Column Excel)
Sub DeleteBlankColumns() 'Step1: Declare your variables. Dim MyRange As Range Dim iCounter As Long 'Step 2: Define the target Range. Set MyRange = ActiveSheet.UsedRange 'Step 3: Start reverse looping through the range. For iCounter = MyRange.Columns.Count To 1 Step -1 'Step 4: If entire column is empty then delete it. If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then Columns(iCounter).Delete End If 'Step 5: Increment the counter down Next iCounter End Sub
اکنون این ماژول را از تب Developer و کلیک بر روی Macros اجرا کنید. نتیجه مانند تصویر زیر خواهد بود.
سوال:اگر در ردیف های خالی،سلولی پر باشد آیا این کد ردیف خالی را حذف خواهد کرد؟خیر.
آیا راهی وجود دارد که ردیف های خالی را با وجود سلول های پر حذف کرد؟بله.در آموزش های بعدی تقدیم شما خواهد شد.
سلام
اگر بخواهیم یک ردیف خالی باشد بعد ردیف دیگر پر باشد (یعنی بیشتر از یک ردیف خالی نداشت باشیم ) به چه صورت است