โปรดดูMicrosoft Excel 2000 เวอร์ชัน 213798
ดูMicrosoft Excel เวอร์ชัน 98 และ Excelเวอร์ชันก่อนหน้าของบทความนี้ 149689
สรุป
บทความนี้ประกอบด้วยตัวอย่างของVisual Basic Microsoft for Applications ที่คุณสามารถใช้เพื่อใช้งานกับอาร์เรย์หลายชนิด
ข้อมูลเพิ่มเติม
Microsoft มีตัวอย่างการเขียนโปรแกรมให้ภาพประกอบเท่านั้น โดยไม่รับประกันตามที่แสดงไว้หรือแสดงเป็นนัย ซึ่งรวมถึงแต่จะไม่จํากัดเพียง การรับประกันโดยนัยของความสามารถทางการค้าหรือความเหมาะสมของวัตถุประสงค์เฉพาะ บทความนี้ถือว่า คุณคุ้นเคยกับภาษาการเขียนโปรแกรมที่จะถูกสาธิตพร้อมด้วยเครื่องมือที่ใช้สร้างและแก้จุดบกพร่องของกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการการใช้งานของกระบวนงานเฉพาะ ได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีฟังก์ชันการฟังก์ชันหรือการสร้างที่เพิ่มเข้ามาเพื่อให้ตรงตามความต้องการเฉพาะของคุณ หมายเหตุ: Visual Basicกระบวนงานแอปพลิเคชัน ข้อความที่อยู่หลังเครื่องหมายอัญประกาศเดี่ยว (') คือข้อคิดเห็น
เมื่อต้องการเติมอาร์เรย์ แล้วคัดลอกไปยังเวิร์กชีต
-
เปิดเวิร์กบุ๊กใหม่และแทรก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" จะระบุขนาดของอาร์เรย์