در این مطلب، ویدئو زیرشاخه ها و توابع VBA با آرایه ها با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:45
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,549 –> 00:00:13,260
اغلب اوقات ما علاقه مند به استفاده از آرایه ها
در VBA برای ایجاد یک زیر روال یا یک تابع آرایه تعریف شده توسط کاربر هستیم
2
00:00:13,260 –> 00:00:14,740
.
3
00:00:14,740 –> 00:00:19,730
بنابراین در این اسکرینکست میخواهم
نحوه استفاده از زیرروالهای VBA و توابع شامل
4
00:00:19,730 –> 00:00:21,939
آرایهها را به شما نشان دهم.
5
00:00:21,939 –> 00:00:29,060
بنابراین اولین مثال هدف ایجاد
یک زیر است که سلول های A1 تا A8 را جمع می کند.
6
00:00:29,060 –> 00:00:32,229
بنابراین ما یک محدوده ثابت و یک مکان ثابت داریم.
7
00:00:32,229 –> 00:00:40,079
اساساً کاری که ما میخواهیم انجام دهیم این است که یک زیربرنامه ایجاد کنیم
که آن هشت عدد را جمع کند، و بدیهی است که
8
00:00:40,079 –> 00:00:44,480
این بسیار بیاهمیت است زیرا شما فقط میتوانید
از تابع جمع در اکسل استفاده کنید، اما ما
9
00:00:44,480 –> 00:00:49,810
میخواهیم یک زیربرنامه ایجاد کنیم که در واقع
مجموع را در یک جعبه پیام خروجی میکند. .
10
00:00:49,810 –> 00:00:51,690
بیایید با ساخت نمودار جریان شروع کنیم.
11
00:00:51,690 –> 00:00:56,230
ما شروع می کنیم و اولین کاری که می خواهیم انجام
دهیم تکرار است.
12
00:00:56,230 –> 00:01:01,179
اگر شما واقعاً سعی می کنیم این کار
را خودتان انجام دهید و این هشت عدد را جمع آوری
13
00:01:01,179 –> 00:01:05,540
کنید، باید با 8 شروع کنید و سپس 4 را اضافه کنید و
سپس 2 و غیره اضافه کنید، بنابراین این دقیقاً همان کاری است
14
00:01:05,540 –> 00:01:07,530
که می خواهیم در فلوچارت خود انجام دهیم.
15
00:01:07,530 –> 00:01:14,080
ما با i شروع می کنیم، که قرار است
شاخص ما باشد، بنابراین با i=1 شروع می کنیم، سپس می گوییم
16
00:01:14,080 –> 00:01:22,510
i=i+1، و زمانی که i بزرگتر از هشت شد، متوقف می شویم
.
17
00:01:22,510 –> 00:01:28,080
تا زمانی که من از هشت بزرگتر
نباشم، به جمع کردن ادامه می دهیم.
18
00:01:28,080 –> 00:01:34,540
بنابراین ما این مجموع را داریم که برابر
با مجموع + مقدار سلول فعلی است، و سپس
19
00:01:34,540 –> 00:01:38,710
به تکرار ادامه میدهیم،
i+1 را افزایش میدهیم.
20
00:01:38,710 –> 00:01:46,070
هنگامی که در نهایت از هشت
تجاوز کردم، مجموع را نمایش می دهیم و کارمان تمام می شود.
21
00:01:46,070 –> 00:01:49,940
کد این فرعی که من آن را “SumVector” نامگذاری کرده ام در
اینجا نشان داده شده است.
22
00:01:49,940 –> 00:01:52,880
می بینید که ما n را به عنوان یک عدد صحیح کم نور می
23
00:01:52,880 –> 00:01:58,800
کنیم و از n برای شمارش تعداد سطرها
در یک لحظه استفاده می کنیم. ما “Sum” را داریم
24
00:01:58,800 –> 00:02:06,480
که مجموع مجموع است. ما همچنین i را
داریم، i را به عنوان یک عدد صحیح کم رنگ کرده ایم، و سپس
25
00:02:06,480 –> 00:02:16,880
عبارت “n = Range(“A1:A8).rows.count” را داریم
و کاری که انجام می دهد این است که ما یک شی داریم،
26
00:02:16,890 –> 00:02:24,750
شی در اینجا است. محدوده A1 تا A8. حالا که
تعداد ردیفها را میدانیم میتوانیم از
27
00:02:24,750 –> 00:02:36,330
i=1 تا n تکرار کنیم
. من، 1)”.
28
00:02:36,330 –> 00:02:45,810
بنابراین سلول های i,1 شی ما هستند
که محدوده A1:A8 است. بنابراین ما به تکرار ادامه می دهیم
29
00:02:45,810 –> 00:02:52,130
تا i بزرگتر از n شود و n در این
مورد فقط 8 خواهد بود و سپس به
30
00:02:52,130 –> 00:02:58,990
کادر “Sum is” پیام می دهیم و سپس این یک مجموع تولید می کند.
بنابراین من می خواهم این را با فشار دادن F5 اجرا کنم.
31
00:02:58,990 –> 00:03:06,900
یک جعبه خروجی دریافت می کنیم که می گوید “مجموع
37 است.” کار بعدی که می خواهم انجام دهم این است که به
32
00:03:06,900 –> 00:03:14,280
شما نشان دهم چگونه می توانیم این را به یک تابع تبدیل کنیم.
بنابراین اکنون آنچه ما در تلاش هستیم انجام دهیم این است که
33
00:03:14,280 –> 00:03:20,681
یک تابع VBA برای جمع کردن یک بردار دلخواه،
نه فقط 8 ردیف، نه همان مکان، ایجاد کنیم.
34
00:03:20,681 –> 00:03:29,910
ما در اینجا یک بردار متفاوت داریم، G2 تا G11،
8 مقدار نیست، و در A1 تا A8 نیست. بنابراین
35
00:03:29,910 –> 00:03:36,220
میخواهیم اکنون بتوانیم یک تابع ایجاد کنیم،
نه یک تابع، که در آن بتوانیم بردار مجموع یک انتخاب را تایپ کنیم
36
00:03:36,220 –> 00:03:41,050
، و این یک
انتخاب برداری خواهد بود. وقتی این را اجرا می کنیم
37
00:03:41,050 –> 00:03:48,340
در واقع مجموع آن بردار را بیرون می اندازد.
بنابراین در اینجا کد بردار مجموع است که ما
38
00:03:48,340 –> 00:03:53,050
با آن کار کردیم، و میخواهیم آن را به
یک تابع تبدیل کنیم، و میخواهیم آن را طوری بسازیم
39
00:03:53,050 –> 00:03:58,010
که روی یک محدوده دلخواه کار کند.
چند اصلاح داریم که باید در این کد انجام دهیم،
40
00:03:58,010 –> 00:04:01,790
اما این تغییر یک تابع به یک تابع است،
و نمیدانم متوجه این موضوع شدهاید یا نه، اما
41
00:04:01,790 –> 00:04:06,910
وقتی آن را پایین فشار دادم، در واقع
«End Sub» را بهطور خودکار به «» تغییر داد. تابع پایان.”
42
00:04:06,910 –> 00:04:10,940
کار بعدی که باید انجام دهیم این است که متغیر ساختگی را
در اینجا ایجاد کنیم، بنابراین من می خواهم “محدوده داده” را قرار دهم
43
00:04:10,940 –> 00:04:16,640
، این آرگومان تابع ما است.
ما قرار نیست از Range (A1:A8) به
44
00:04:16,640 –> 00:04:21,228
عنوان شی استفاده کنیم، در عوض شی
فقط “محدوده داده” است، که آرگومان
45
00:04:21,228 –> 00:04:25,819
تابع ما است. ما
یکسان را جمع می کنیم، تفاوت دیگر اینجاست که
46
00:04:25,819 –> 00:04:31,270
دیگر محدوده را به عنوان شی نداریم.
تنها چیز دیگر این است که شما هرگز نمی خواهید
47
00:04:31,270 –> 00:04:38,430
یک جعبه پیام در یک تابع ساخته شود، بنابراین ما
“SumVector” را قرار می دهیم که
48
00:04:38,430 –> 00:04:44,340
خروجی تابع برابر با مجموع است. دوباره در
اکسل میتوانم در یک سلول تایپ کنم، و
49
00:04:44,340 –> 00:04:49,259
وقتی این را مینویسم، میبینید که intellisense تشخیص میدهد که
من یک تابع تعریفشده توسط کاربر دارم، و
50
00:04:49,259 –> 00:04:54,150
من میخواهم آنچه را که میخواهم در آن قرار دهم انتخاب کنم و
سپس enter را فشار میدهم و به ما
51
00:04:54,150 –> 00:04:58,710
مجموع 9 می دهد. کار بعدی که می خواهیم انجام دهیم این است
که به جای جمع کردن یک بردار،
52
00:04:58,710 –> 00:05:04,210
جمع و آرایه می کنیم. ب