گاهی جدولی مانند جدول زیر به شما تحویل میدهند و از شما می خواهند ستون های خالی را از این جدول حذف کنید.
اگر جدول شما ستون های کمی داشته باشد این کار را می توانید به صورت دستی انجام دهید ولی اگر 100 ستون داشته باشید به طور دستی حذف کردن این ستون ها کار بسیار مشکلی خواهد بود و حتی می تواند ایجاد مشکل بکند.
بعد از این آموزش فرا خواهید گرفت چطور جدول بالا را به جدول زیر تبدیل کنید.
پیش از شروع آموزش چند تذکر را یادآوری می کنیم:
1)این یک نمونه کد می باشد و شاید نیاز شما را پاسخگو نباشد.
2)قبل از اعمال این کد بر روی فایل خود، حتما و حتما از فایل خود یک کپی تهیه کنید چرا که بعد از اعمال کلیه کدهای VBA فایل شما قابل بازیابی نمی باشد.
3)این کد ها را بر روی یک فایل کپی اجرا کنید و به هیچ عنوان بر روی فایل اصلی اجرا نکنید.
4)فایل کپی را حتما به صورت Excel macro-enabled workbook ذخیره کنید.
برای استفاده از این کد یک سری پیش فرض هایی را بیان می نماییم:
1)محدوده جدول خود را انتخاب کرده و نام آن را MyRange می گذاریم.مانند تصویر زیر:
2)در ستون خالی هیچ سلولی پر نمی باشد.(یعنی در ستون های خالی هیچ سلول پری نداریم)مانند تصویر بالا.
اکنون وارد محیط ویرایشگر vba شوید.(Alt+F11)مانند تصویر زیر بر روی Module کلیک کنید.
اکنون کد های زیر را مانند تصویر زیر در Module1 کپی کنید.
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 اجرا کنید.نتیجه مانند تصویر زیر خواهد بود.سوال:اگر در ردیف های خالی،سلولی پر باشد آیا این کد ردیف خالی را حذف خواهد کرد؟خیر. آیا راهی وجود دارد که ردیف های خالی را با وجود سلول های پر حذف کرد؟بله.در آموزش های بعدی تقدیم شما خواهد شد.
سلام
اگر بخواهیم یک ردیف خالی باشد بعد ردیف دیگر پر باشد (یعنی بیشتر از یک ردیف خالی نداشت باشیم ) به چه صورت است