สรุป
บทความนี้มีตัวอย่างกระบวนงาน Microsoft Visual Basic for Applications ที่คุณสามารถใช้เพื่อทํางานกับอาร์เรย์หลายชนิดได้
ข้อมูลเพิ่มเติม
Microsoft แสดงตัวอย่างการเขียนโปรแกรมสําหรับภาพประกอบเท่านั้น โดยไม่มีการรับประกันทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จํากัดเพียงการรับประกันโดยนัยถึงความสามารถในเชิงพาณิชย์หรือความเหมาะสมสําหรับวัตถุประสงค์เฉพาะ บทความนี้จะถือว่าคุณคุ้นเคยกับภาษาการเขียนโปรแกรมที่กําลังแสดงอยู่ และมีเครื่องมือที่ใช้สําหรับสร้างและแก้ไขจุดบกพร่องของกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทํางานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีฟังก์ชันการทํางานที่เพิ่มขึ้นหรือสร้างขั้นตอนต่างๆ เพื่อตอบสนองความต้องการเฉพาะของคุณ หมายเหตุ: ในกระบวนงาน Visual Basic for Applications คําว่า after apostrophe (') คือข้อคิดเห็น
เมื่อต้องการเติมอาร์เรย์ แล้วคัดลอกไปยังเวิร์กชีต
-
เปิดเวิร์กบุ๊กใหม่และแทรกแผ่นงานมอดูล Visual Basic
-
พิมพ์รหัสต่อไปนี้บนแผ่นงานโมดูล
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
เลือก Sheet1
-
บนเมนู เครื่องมือ ให้ชี้ไปที่ แมโคร แล้วคลิก แมโคร
-
ในกล่องโต้ตอบ แมโคร ให้คลิก Sheet_Fill_Array แล้วคลิก เรียกใช้
เมื่อต้องการนําค่าจากเวิร์กชีตไปเติมอาร์เรย์
-
พิมพ์ค่าบน Sheet1 ในเซลล์ A1:A10
-
บนแผ่นงานมอดูล Visual Basic ให้พิมพ์โค้ดต่อไปนี้:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
เลือก Sheet1
-
บนเมนู เครื่องมือ ให้ชี้ไปที่ แมโคร แล้วคลิก แมโคร
-
ในกล่องโต้ตอบ แมโคร ให้คลิก from_sheet_make_array แล้วคลิก เรียกใช้
เมื่อต้องการส่งผ่านและรับอาร์เรย์
-
บนแผ่นงานมอดูล ให้พิมพ์รหัสต่อไปนี้:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
เลือก แผ่นงาน 1 แล้วเน้นช่วง A1:A10
-
บนเมนู เครื่องมือ ให้ชี้ไปที่ แมโคร แล้วคลิก แมโคร
-
ในกล่องโต้ตอบ แมโคร ให้คลิก pass_array แล้วคลิก เรียกใช้
เมื่อต้องการเปรียบเทียบสองอาร์เรย์
-
สร้างช่วงที่มีชื่อสองช่วงบน Sheet1 ตั้งชื่อช่วงหนึ่ง 1 และอีกช่วง 2
ตัวอย่างเช่น เน้นช่วงเซลล์ A1:A10 และตั้งชื่อช่วง 1 ไฮไลต์ช่วงเซลล์ B1:B10 และตั้งชื่อช่วง 2 -
พิมพ์รหัสต่อไปนี้บนแผ่นงานโมดูล
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
เลือก Sheet2
-
บนเมนู เครื่องมือ ให้ชี้ไปที่ แมโคร แล้วคลิก แมโคร
-
ในกล่องโต้ตอบ แมโคร ให้คลิก compare_two_array แล้วคลิก เรียกใช้
คุณจะเห็นกล่องข้อความหนึ่งกล่องสําหรับการเปรียบเทียบทุกครั้ง
เมื่อต้องการเติมอาร์เรย์แบบไดนามิก
-
บนแผ่นงานมอดูล ให้พิมพ์รหัสต่อไปนี้:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
บนเมนู เครื่องมือ ให้ชี้ไปที่ แมโคร แล้วคลิก แมโคร
-
ในกล่องโต้ตอบ แมโคร ให้คลิก fill_array แล้วคลิก เรียกใช้
หมายเหตุ: การเปลี่ยนตัวแปร "number_of_elements" จะกําหนดขนาดของอาร์เรย์