วันอังคารที่ 2 สิงหาคม พ.ศ. 2559

การ Loop ในช่วงเซลล์

         เมื่อใช้ Visual Basic มีบ่อยครั้งที่ต้องวนรอบ (Loop) เพื่อเข้าถึงแต่ละเซลล์ในบล็อกของช่วงเซลล์ ซึ่งการทำเช่นนี้ คุณสามารถรวมคำสั่งวน Loop เพื่อดำเนินการกับแต่ละเซลล์
วิธีการวนซ้ำในช่วงเซลล์ที่ต้องการวิธีหนึ่งคือการใช้ For…Next กับ Cells Property การใช้ Cells Property สามารถทดแทนนับวนจำนวนของเซลล์ (หรืออื่น ๆ ตัวแปร หรือนิพจน์) ในตัวอย่างต่อไปนี้ ตัวแปร Counter ถูกแทนด้วยเลขแถว เป็นการวนซ้ำในช่วงเซลล์ C1:C20 โดยตั้งค่าเป็น 0 เมื่อเซลล์ใดมีค่าน้อยกว่า 0.01
 
Sub RoundToZero1()
    For Counter = 1 To 20
        Set curCell = Worksheets("Sheet1").Cells(Counter, 3)
        If Abs(curCell.Value) < 0.01 Then curCell.Value = 0
    Next Counter
End Sub

        วิธีที่ง่ายอีกวิธีหนึ่งคือการวนซ้ำในช่วงเซลล์โดยการใช้ For Each…Next กับ Collection ของเซลล์ใน Range Property โดย Visual Basic ตั้งค่า Object สำหรับเซลล์ถัดไปให้ทำงานแต่ละครั้งการวนรอบ ขั้นตอนต่อไปนี้เป็นการวนรอบช่วงเซลล์ A1:D10 โดยตั้งค่าเป็น 0 เมื่อเซลล์ใดมีค่าน้อยกว่า 0.01

Sub RoundToZero2()
    For Each c In Worksheets("Sheet1").Range("A1:D10").Cells
        If Abs(c.Value) < 0.01 Then c.Value = 0
    Next
End Sub

         ถ้าคุณไม่ทราบขอบเขตของช่วงคุณต้องการวนซ้ำ คุณสามารถใช้ CurrentRegion Property เพื่อระบุช่วงที่ล้อมรอบเซลล์ที่ใช้งาน ตัวอย่างเช่น Precedure ต่อไปนี้ เมื่อเรียกใช้จากแผ่นงาน เกิดการวนซ้ำในช่วงที่ล้อมรอบเซลล์ที่กำลังใช้งาน โดยตั้งค่าเป็น 0 เมื่อเซลล์ใดมีค่าน้อยกว่า 0.01

Sub RoundToZero3()
    For Each c In ActiveCell.CurrentRegion.Cells
        If Abs(c.Value) < 0.01 Then c.Value = 0
    Next
End Sub

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...