/ / สุ่มเลือกข้อมูลใน Excel VBA

สุ่มเลือกข้อมูลใน Excel VBA

ด้านล่างเราจะดูที่โปรแกรมมา Excel VBA ที่ สุ่มจัดเรียงข้อมูล (ในตัวอย่างนี้ตัวอย่างแบบชื่อ)

สถานการณ์:

สุ่มเลือกข้อมูลใน Excel VBA

1. ขั้นแรกเราจะประกาศตัวแปรสี่ตัว ตัวแปรหนึ่งชนิด String ที่เราเรียกว่า TempString ซึ่งเป็นหนึ่งตัวแปรประเภท Integer ที่เราเรียกว่า TempInteger หนึ่งตัวแปรประเภท Integer ที่เราเรียกว่า i และหนึ่งตัวแปรชนิด Integer ที่เราเรียก j

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. เราเขียนตัวเลขสุ่ม 5 รายการลงในคอลัมน์ B (หนึ่งสำหรับแต่ละชื่อ) เราใช้ฟังก์ชันแผ่นงาน RandBetween สำหรับข้อมูลนี้

For i = 1 To 5
    Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Next i

ผลการค้นหา:

ผลจนถึงขณะนี้

เราจะใช้ตัวเลขที่อยู่ถัดจากแต่ละชื่อเพื่อเรียงลำดับชื่อ ชื่อที่มีหมายเลขต่ำสุดเป็นอันดับแรกชื่อที่มีจำนวนต่ำสุดที่สองอันดับที่สอง ฯลฯ

3. เราเริ่ม Double Loop

For i = 1 To 5
    For j = i + 1 To 5

4. เพิ่มบรรทัดรหัสต่อไปนี้:

If Cells(j, 2).Value < Cells(i, 2).Value Then

ตัวอย่าง: สำหรับ i = 1 และ j = 2 เปรียบเทียบเวนดี้และริชาร์ด เนื่องจากริชาร์ดมีจำนวนต่ำกว่าเราจึงแลกเวนดี้และริชาร์ด ริชาร์ดอยู่ในตำแหน่งแรกในขณะนี้ สำหรับ i = 1 และ j = 3 ให้เปรียบเทียบ Richard และ Joost Joost มีจำนวนสูงกว่าจึงไม่มีอะไรเกิดขึ้น ด้วยวิธีนี้ Excel VBA จะได้ชื่อที่มีจำนวนต่ำสุดที่ตำแหน่งแรก สำหรับ i = 2, Excel VBA จะได้ชื่อที่มีจำนวนต่ำสุดที่สองในตำแหน่งที่สอง ฯลฯ

5. ถ้าเป็นจริงเราแลกเปลี่ยนชื่อ

tempString = Cells(i, 1).Value
Cells(i, 1).Value = Cells(j, 1).Value
Cells(j, 1).Value = tempString

6. และเราแลกเปลี่ยนตัวเลข

tempInteger = Cells(i, 2).Value
Cells(i, 2).Value = Cells(j, 2).Value
Cells(j, 2).Value = tempInteger

7. อย่าลืมปิดคำสั่ง if

End If

8. อย่าลืมปิดสองลูป

    Next j
Next i

9. ทดสอบโปรแกรม

ผล:

สุ่มเรียงข้อมูลผลลัพธ์

บันทึก: คุณสามารถเพิ่มบรรทัดที่ลบตัวเลขในคอลัมน์ B. มันยิ่งกว่าที่จะวางตัวเลขของแต่ละชื่อในอาร์เรย์ดังนั้นตัวเลขไม่ถูกวางไว้บนแผ่นงานของคุณอย่างไรก็ตามเพื่อวัตถุประสงค์ในการอธิบายเราได้เลือกที่จะวาง ค่าบนแผ่นงาน

อ่านเพิ่มเติมได้ที่: