شمارش سلول ها در اکسل ‍| اجرای وظیفه ۲ – پروژه ۱

برای شمارش سلول ها در اکسل پروژه ۱ باید بررسی نماییم که کدام سلول ها دارای اطلاعات هستند و کدامیک خالی هستند و هیچ اطلاعاتی ندارند. برای این کار از کد زیر استفاده می نماییم. در ادامه سطر به سطر کد را با یکدیگر بررسی می نماییم.

لینک پروژه اصلی : ایجاد فایل txt با VBA | کاربرد عملی آرایه دوبعدی، حلقه ها و پنجره ذخیره فایل در VBA

توجه داشته باشید که در اکسل راه های زیادی برای شمارش سلول های پر با استفاده از توابع داخلی آن وجود دارد. بعنوان مثال یکی از این راه ها استفاده تابع COUNTA می باشد.

کد VBA

برای شمارش سلول ها در اکسل پروژه ۱ از کد زیر استفاده نموده ایم.

Set xlBook = ThisWorkbook 'تعيين مرجع شيء بعنوان فايل اکسل جاري
Set xlWS = xlBook.Sheets("baseFile") 'تعيين صفحه حاوي اطلاعات بعنوان مرجع شيء
 
sw = False 'متغير بولين براي شمارش تعداد رديف هاي صفحه حاوي اطلاعات
rowCount = 0 'متغير عددي براي نگهداري تعداد رديف ها
i = 1 'متغير عددي براي شمارش تعداد رديف ها
 
Do Until sw = True 'شروع حلقه و ادامه آن تا وقتي که متغير بولين مقدار صحيح داشته باشد
	Set r = xlWS.Range("A" & i) 'تعيين ستون اول بعنوان سلول موردنظر براي بررسي
	If IsEmpty(r.Value) Then 'بررسي مقدار سلول از نظر اينکه آيا سلول خالي است يا مقدار دارد
		sw = True 'اگر مقدار سلول خالي شود شاخص خروج از حلقه مثبت مي شود و حلقه پايان مي يابد
	Else 
		rowCount = rowCount + 1 'در صورتي که مقدار سلول خالي نباشد شمارش ادامه مي يابد
		i = i + 1 'اگر سلول خالي نباشد سلول بعدي بايد بررسي شود
	End If
Loop

تحلیل سطر به سطر کد:

برای اجرای وظیفه ۲ از یک حلقه Do استفاده نموده ایم. خط ۸ شروع حلقه و خط ۱۶ پایان حلقه Do را اعلام می نمایند. حلقه ها در برنامه نویسی برای تکرار یک یا چند دستور کاربرد دارند.

سطر ۱

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

سطر ۲

اعلام نموده است که مرجع متغیر xlWS به صفحه baseFile اشاره دارد.

سطر ۴

مقداردهی اولیه متغیر بولی sw می باشد. از این متغیر برای کنترل حلقه Do استفاده می نماییم.

سطر ۵

مقداردهی اولیه متغیر rowCount می باشد. این متغیر برای نگهداری تعداد سطرهایی که در صفحه baseFile توسط کاربر انتقال داده شده است کاربرد دارد.

سطر ۶

مقدار اولیه متغیر i در این سطر برابر 1 تعیین شده است. این متغیر تعیین کننده اولین سلولی است که باید از آنجا شمارش آغاز شود. در اینجا با توجه به اینکه در وظیفه ۱ به کاربر اعلام کرده ایم که اطلاعات فایل txt را در سلول A1 جایگذاری نماید، بنابراین مقدار اولیه آن 1 تعیین شده است.

سطر ۸

شروع حلقه Do را اعلام کرده است. در این خط کلمه کلیدی Until که بخشی از بدنه حلقه Do می باشد به این معناست که حلقه تا زمانی که مقدار متغیر بولین sw = True گردد دستورات داخل بدنه حلقه Do یعنی خطوط ۹ تا ۱۵ تکرار گردد.

سطر ۹

در این سطر به کامپایلر VBA اعلام شده است که مرجع متغیر r سلول "A" & i می باشد. در اینجا دلیل استفاده از متغیر i مشخص می شود. با توجه به سطر ۶ اولین سلولی که باید بررسی شود A1 خواهد بود.

سطر ۱۰

در این سطر از دستور If و ترکیب آن با تابع داخلی IsEmpty برای بررسی مقدار سلول r استفاده شده است. مقدار بازگشتی تابع داخلی IsEmpty یک متغیر بولی می باشد و در این سطر این تابع مقدار سلول r.Value را بررسی می نماید. با توجه به توضیحات کد If IsEmpty(r.Value) Then به VBA اعلام می نماید که اگر مقدار سلولی که در کد سطر ۹ تعیین نموده ایم اگر خالی باشد کد سطر ۱۰ اجرا شود و گرنه سطر ۱۲ اجرا گردد.

سطر ۱۱

در صورتی که مقدار سلول خالی باشد مقدار متغیر sw = True تعیین می شود و حلقه Do پایان می یابد.

سطر ۱۲

بخشی از بدنه دستور If می باشد و بدین معناست که اگر عکس شرط اصلی برقرار باشد خطوط بین Else و End If باید اجرا گردند.

سطر ۱۳

در صورتی که مقدار سلولی که بررسی می شود خالی نباشد شمارش با استفاده از کد rowCount = rowCount + 1 آغاز می شود.

سطر ۱۴

در این سطر کد مقدار متغیر i یک واحد افزایش می یابد تا حلقه Do در سلول بعدی ادامه یابد.

سطر ۱۵

پایان دستور If را اعلام می نماید.

سطر ۱۶

پایان حلقه Do را اعلام می نماید.

تعداد سلول های شمارش شده

پس از پایان حلقه Do در خط ۱۶ مقدار متغیر rowCount برابر با تعداد سلول های شمارش شده خواهد بود.

دیدگاهتان را بنویسید