ด้านล่างเราจะดูโปรแกรมใน Excel VBA นั่น เรียงเลข .
สถานการณ์:
สถานที่ ปุ่มคำสั่ง บนเวิร์กชีตของคุณและเพิ่มบรรทัดโค้ดต่อไปนี้:
1. ขั้นแรก เราประกาศตัวแปรสามตัวประเภท Integer และ Range วัตถุหนึ่งตัว
ไม่มีผมเนื่องจาก จำนวนเต็ม, NSเนื่องจาก จำนวนเต็ม, อุณหภูมิเนื่องจาก จำนวนเต็ม, rngเนื่องจากพิสัย
2. เราเริ่มต้นวัตถุ Range rng ด้วยตัวเลขในคอลัมน์ A เราใช้ ภูมิภาคปัจจุบัน ทรัพย์สินเพื่อการนี้ CurrentRegion มีประโยชน์เมื่อเราไม่ทราบขอบเขตที่แน่นอนของช่วงล่วงหน้า (เราต้องการให้โปรแกรมนี้ทำงานสำหรับตัวเลข 9 ตัว แต่สำหรับตัวเลข 90 ตัวด้วย)
ชุดrng = Range('A1').CurrentRegion3. เราเริ่มลูป 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. ทดสอบโปรแกรมของคุณ
ผลลัพธ์:
ไปที่บทถัดไป: ข้อผิดพลาดมาโคร