300 ตัวอย่าง

เรียงเลข

Sort Numbers

ด้านล่างเราจะดูโปรแกรมใน Excel VBA นั่น เรียงเลข .





สถานการณ์:

ตัวอย่างการเรียงลำดับตัวเลข





สถานที่ ปุ่มคำสั่ง บนเวิร์กชีตของคุณและเพิ่มบรรทัดโค้ดต่อไปนี้:

1. ขั้นแรก เราประกาศตัวแปรสามตัวประเภท Integer และ Range วัตถุหนึ่งตัว



ไม่มีผมเนื่องจาก จำนวนเต็ม, NSเนื่องจาก จำนวนเต็ม, อุณหภูมิเนื่องจาก จำนวนเต็ม, rngเนื่องจากพิสัย

2. เราเริ่มต้นวัตถุ Range rng ด้วยตัวเลขในคอลัมน์ A เราใช้ ภูมิภาคปัจจุบัน ทรัพย์สินเพื่อการนี้ CurrentRegion มีประโยชน์เมื่อเราไม่ทราบขอบเขตที่แน่นอนของช่วงล่วงหน้า (เราต้องการให้โปรแกรมนี้ทำงานสำหรับตัวเลข 9 ตัว แต่สำหรับตัวเลข 90 ตัวด้วย)

ชุดrng = Range('A1').CurrentRegion

3. เราเริ่มลูป For Next สองครั้ง

สำหรับผม = 1ถึงrng.Count
สำหรับเจ = ผม + 1ถึงrng.Count

คำอธิบาย: rng.Count เท่ากับ 9 ดังนั้นโค้ดสองบรรทัดแรกจะลดลงเป็น For i = 1 ถึง 9 และ For j = i + 1 ถึง 9 สำหรับ i = 1, j = 2, 3, ... , 8 และ 9 มีการตรวจสอบ

การคำนวณการชำระเงินจำนองใน excel

4. ในการเรียงลำดับตัวเลขอย่างถูกต้อง เราจะเปรียบเทียบตัวเลขแรกกับตัวเลขถัดไป หากตัวเลขถัดไปน้อยกว่า ให้สลับตัวเลข เพิ่มคำสั่ง if then ต่อไปนี้

ถ้าrng.เซลล์(j)แล้ว

จบ ถ้า

หากข้อความข้างต้นเป็นจริง เราจะสลับตัวเลข

วิธีนับจำนวนแถวใน excel

ตัวอย่างเช่น: สำหรับ i = 1 และ j = 2 กำลังเปรียบเทียบตัวเลข 2 และ 10 ข้อความข้างต้นไม่เป็นความจริง จึงไม่ต้องสลับเลข Excel VBA เพิ่มขึ้น j ต่อ 1 และทำซ้ำบรรทัดโค้ดสำหรับ i = 1 และ j = 3 คุณสามารถเห็นได้ง่าย ๆ ว่า 5 มากกว่า 2 ดังนั้นจึงไม่จำเป็นต้องสลับตัวเลข เราได้รับผลลัพธ์เหมือนกันสำหรับ j = 4, j = 5 และ j = 6 เมื่อเรามาถึง j = 7 ข้อความข้างต้นเป็นจริงเนื่องจาก 1 น้อยกว่า 2

5. พวกเรา แลกเปลี่ยน ตัวเลข. เราเก็บหนึ่งหมายเลขไว้ชั่วคราว เพื่อให้ Excel VBA สามารถสลับตัวเลขได้อย่างถูกต้อง เพิ่มบรรทัดโค้ดต่อไปนี้ในคำสั่ง if

'แลกเบอร์
อุณหภูมิ = rng.Cells (i)
rng.Cells(i) = rng.Cells(j) เซลล์
rng.Cells(j) = อุณหภูมิ

6. เราปิดลูป For Next ที่สอง (นอกคำสั่ง if)

ต่อไปNS

สำหรับ i = 1 และ j = 7 Excel VBA จะสลับตัวเลข นั่นหมายความว่าเราได้ 1 ในตำแหน่งแรกและ 2 ที่ตำแหน่ง 7 ตอนนี้เรามี 1 ในตำแหน่งแรก เราจะเปรียบเทียบค่านี้กับ 5 (สำหรับ j = 8) และ 4 (สำหรับ j = 9) ไม่จำเป็นต้องสลับตัวเลข (1 เป็นตัวเลขที่น้อยที่สุด) วิธีนี้ Excel VBA ได้รับ (สำหรับ i = 1) ตัวเลขที่น้อยที่สุดในตำแหน่งแรก เพื่อให้ได้ตัวเลขที่เล็กที่สุดเป็นอันดับสองในตำแหน่งที่สอง Excel VBA จะทำซ้ำขั้นตอนเดียวกันสำหรับ i = 2 เพื่อให้ได้ตัวเลขที่น้อยที่สุดเป็นอันดับสามในตำแหน่งที่สาม Excel VBA จะทำซ้ำขั้นตอนเดียวกันสำหรับ i = 3 เป็นต้น

7. ปิด For Next loop แรก (นอกคำสั่ง if)

ต่อไปผม

8. ทดสอบโปรแกรมของคุณ

ผลลัพธ์:

เรียงลำดับตัวเลขใน Excel VBA

7/11 เสร็จแล้ว! เรียนรู้เพิ่มเติมเกี่ยวกับลูป >
ไปที่บทถัดไป: ข้อผิดพลาดมาโคร



^