PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ساختار برنامه select case در اکسل



ali.b
2014/10/08, 13:59
Select CASE

دستور SELECT CASE دستوری با کاربردی مانند IF می باشد. در جهت استفاده از این دستور ما نیازمند تعریف متغیری مانند X هستیم و سپس برای متغیر مورد اشاره شروط مورد نیاز را می گذاریم.


شکل کلی دستور Select Case

Select Case نام متغیر
Case حالت اول
دستورات
Case حالت دوم
دستورات
.
.
.

Case Else
دستورات
End Select



در زیر برنامه ای نوشته شده است که برای مقادیر مختلف موجود در سل A1 یک شیت اکسل عبارات A , B, C, … را در سل مقابل آن می گذارد.

Sub level( )
x = Range("a1").Value
Select Case x
Case 17 To 20
Range("b1").Value = " A"
Case 14 To 17
Range("b1").Value = " B"
Case 12 To 14
Range("b1").Value = " C"
Case 10 To 12
Range("b1").Value = " D"
Case 0 To 10
Range("b1").Value = " E"
Case Else
Range("b1").Value = "false"
End Select
End Sub


ساختار حلقه ای FOR Each - NEXT
حلقه ها دستوراتی هستند که می توان جهت انجام دستورات تکراری از آنها استفاده نمود. حلقهFOR Each برای کار بر روی عضوهای(members) یک مجموعه(collection) استفاده می شود. مجموعه شامل تعدادی شیء یکسان است. به عنوان مثال Range("A1:A10") یک *collection * است زیرا تعدادی عضو به نام سلول است که همگی از یک جنس هستند.worksheet های یک فایل اکسل مجموعه ای به نام Worksheets تشکیل می دهند. چارتهای یک فایل اکسل مجموعه ای به نام Charts تشکیل می دهند.
الگوی زیر الگوی استفاده از یک حلقه FOR Each در برنامه نویسی می باشد:


For Each عضو In مجموعه
دستورات
NEXT



در برنامه ای که در زیر نوشته شده عملیات مورد نظر بر روی ردیفهای 1 تا 10 ستون A انجام می شود.برنامه به گونه ای نوشته شده است که اعداد کمتر از 10موجود در ستون اول، را Bold*کند


حال با استفاده و ترکیب دو دستور FOR-NEXT به سادگی برنامه مورد اشاره به شرح ذیل نوشته می شود:


Sub range_level ()

Sub a()


For Each c In Range("a11:h20")
If x < 10 Then c.Font.Bold = True
Next

End Sub
استفاده از دستور ROW در برنامه:

برنامه بالا برنامه مناسبی بود اما در فاز بعدی برنامه نویسی ما خواهان این نکته هستیم برنامه ای نوشته شود که به ازای مقادیر مختلف در یک ستون در اکسل عباراتی متناسب با آن اعداد را در مقابل آنها بنویسد.
تنها نکته موجود در این برنامه وجود دستور ROW است که از دسته دستوراتی مانند VALUEمی باشد که در اینجا ROW به مفهوم ردیف مورد نظر می باشد.و برای نیل به هدف بالا می بایست دو متغیر تعریف نمود.
متغیر اول برای عدد مورد نظر که هدف برنامه آن است و متغیر دوم ردیف عدد مود نظر که برای اینکه در مقابل آن عدد باید عبارت مورد نظر برنامه تایپ گردد، مورد نیاز است.مع الوصف برنامه مورد نظر به شکل زیر نوشته می شود:



Sub range_level()
Dim c As Range
For Each c In Range("a1:a10")
x = c.Value
i = c.Row

Select Case x

Case 17 To 20
Cells(i, 2) = "A"
Case 14 To 17
Cells(i, 2) = "B"
Case 12 To 14
Cells(i, 2) = "C"
Case 10 To 12
Cells(i, 2) = "D"
Case 0 To 10
Cells(i, 2) = "E"
Case Else
Cells(i, 2) = "ERROR"
End Select

Next

End Sub

منبع:

دوست عزیز اقای بیرامی
اینم ادرس سایت
http://persianblog.ir (http://persianblog.ir/)