VBA سالها است که بخشی از مجموعه Microsoft Office است. در حالی که عملکرد و قدرت کامل یک برنامه کامل VB را ندارد ، VBA انعطاف پذیری کاربران اداری را برای ادغام محصولات Office و خودکار کردن کارهایی که در آنها انجام می دهید فراهم می کند.
یکی از قدرتمندترین ابزار موجود در VBA توانایی بارگیری طیف وسیعی از داده ها در یک متغیر واحد به نام آرایه است. با بارگیری داده ها به این روش ، می توانید محاسبات مربوط به آن طیف وسیعی از داده ها را به روش های مختلفی دستکاری یا انجام دهید.
بنابراین آرایه VBA چیست؟ در این مقاله ما به آن سؤال پاسخ خواهیم داد ، و به شما نشان خواهیم داد كه چگونه می توانید در اسکریپت VBA خود را.
یک VBA Array چیست؟
با استفاده از VBA آرایه در اکسل بسیار ساده است ، اما اگر هرگز از آن استفاده نکرده اید ، درک مفهوم آرایه ها می تواند کمی پیچیده باشد.
به آرایه ای مانند جعبه با بخش هایی در داخل آن فکر کنید. یک آرایه تک بعدی یک جعبه با یک خط بخش است. یک آرایه دو بعدی یک جعبه است که دارای دو بخش است.
می توانید داده ها را در هر بخش از این "جعبه" به هر ترتیبی که دوست دارید قرار دهید.
In_content_1 همه: [300x250] / dfp: [640x360]->در ابتدای اسکریپت VBA ، باید این کادر را با تعریف آرایه VBA خود تعریف کنید. بنابراین برای ایجاد آرایه ای که بتواند یک مجموعه داده را حفظ کند (یک آرایه یک بعدی) ، می توانید خط زیر را بنویسید.
Dim arrMyArray(1 To 6) As String
بعداً در برنامه خود ، می توانید داده ها به هر بخش از این آرایه با مراجعه به بخش داخل پرانتز ها ، داده می شود.
arrMyArray(1) = "Ryan Dube"
با استفاده از خط زیر می توانید یک آرایه دو بعدی ایجاد کنید.
Dim arrMyArray(1 To 6,1 to 2) As Integer
شماره اول ردیف را نشان می دهد ، و شماره دوم ستون است. بنابراین آرایه فوق می تواند دامنه ای با 6 ردیف و 2 ستون را در خود نگه دارد.
می توانید هر عنصر از این آرایه را با داده های زیر بارگیری کنید.
arrMyArray(1,2) = 3
این یک 3 را در سلول B1 بارگذاری می کند.
یک آرایه می تواند هر نوع داده را به عنوان یک متغیر معمولی مانند رشته ها ، بولی ، عدد صحیح ، شناور و موارد دیگر نگه دارد.
تعداد داخل پرانتز نیز می تواند متغیر باشد. برنامه نویسان معمولاً از یک For Loop برای شمارش در تمام بخش های یک آرایه استفاده می کنند و سلول های داده را در صفحه گسترده در آرایه بارگذاری می کنند. خواهید دید که چگونه این کار را بعداً در این مقاله انجام دهید.
چگونه یک VBA Array را در اکسل برنامه ریزی کنیم
بیایید یک برنامه ساده را مرور کنیم که در آن ممکن است بخواهید بارگیری کنید از یک صفحه گسترده به یک آرایه چند بعدی.
به عنوان نمونه ، بیایید به یک صفحه گسترده فروش محصول بپردازیم ، جایی که می خواهید نام ، آیتم و کل فروش را از صفحه گسترده بکشید.
توجه داشته باشید که در VBA وقتی ردیف ها یا ستون ها را رجوع می کنید ، ردیف ها و ستون ها را از بالا سمت چپ از 1 شروع می کنید. بنابراین ستون rep 3 است ، ستون مورد 4 است و ستون کل 7.
برای بارگذاری این سه ستون در هر 11 ردیف ، باید اسکریپت زیر را بنویسید.
Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i
متوجه خواهید شد که برای جستجوی ردیف سرصفحه ، شماره ردیف در ابتدا برای نگاه باید از 2 شروع شود نه از 1. این بدان معنی است که هنگام بارگیری باید مقدار 1 را برای مقدار ردیف آرایه کم کنید. مقدار سلول را در آرایه با استفاده از Cells (i، j) .Value انجام دهید.
از کجا درج اسکریپت VBA خود را وارد کنید
برای قرار دادن برنامه اسکریپت VBA در اکسل ، باید از ویرایشگر VBA شما می توانید با انتخاب منوی برنامه نویسو انتخاب <مشاهده کددر بخش Controls of the ribbon ، به این دسترسی پیدا کنید.
اگر برنامه نویس را در منو نمی بینید ، باید آن را اضافه کنید برای انجام این کار ، پروندهو گزینه هارا انتخاب کنید تا پنجره گزینه های اکسل باز شود.
دستورات انتخاب را از کشویی به همه دستوراتتغییر دهید. برنامه نویسرا از منوی سمت چپ انتخاب کرده و دکمه افزودنرا انتخاب کنید تا آن را به سمت راست سمت راست منتقل کنید. کادر فعال را انتخاب کنید و گزینه خوبرا برای اتمام انتخاب کنید.
وقتی پنجره Code Editor باز می شود ، مطمئن شوید ورق داده های شما در قسمت سمت چپ است. برگه کاررا در قسمت سمت چپ و فعال کردندر سمت راست انتخاب کنید. با این کار زیربنایی جدید به نام Worksheet_Activate () ایجاد می شود.
این عملکرد هر زمان که پرونده صفحه گسترده باز شود اجرا می شود. کد را درون صفحه اسکریپت درون این زیر برنامه بچسبانید.
این اسکریپت در 12 ردیف کار خواهد کرد و نام rep را از ستون 3 ، مورد از ستون 4 و کل فروش از ستون 7. بارگیری می کند.
پس از اتمام هر دو حلقه ، آرایه دو بعدی arrMyArray شامل تمام داده هایی است که شما از برگه اصلی مشخص کرده اید.
دستکاری آرایه ها در Excel VBA
بیایید می گویند شما می خواهید برای همه قیمت های فروش نهایی مالیات فروش 5٪ اعمال کنید. ، و سپس تمام داده ها را به یک برگه جدید بنویسید.
می توانید این کار را با اضافه کردن یک حلقه دیگر پس از اولین ، با دستور برای نوشتن نتایج به یک برگه جدید انجام دهید.
For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k
این امر باعث تخلیه کل آرایه ها در ورق 2 خواهد شد ، با یک ردیف اضافی که شامل کل ضرب شده 5٪ برای مبلغ مالیات است.
ورق نتیجه بدست می آید.
همانطور که مشاهده می کنید ، آرایه های VBA در اکسل بسیار مفید و به همان اندازه متناسب با هر ترفند دیگر اکسل هستند.
مثال بالا استفاده بسیار ساده ای برای آرایه است. می توانید آرایه های بسیار بزرگ تری ایجاد کنید و مرتب سازی ، میانگین یا بسیاری از کارکردهای دیگر را در برابر داده هایی که در آنها ذخیره می کنید انجام دهید.اگر می خواهید خلاق واقعی باشید ، حتی می توانید دو آرایه 3 <از دو صفحه مختلف استفاده کنید و محاسبات را بین عناصر هر آرایه انجام دهید.
برنامه ها فقط با تصورات شما محدود می شوند.