อาร์เรย์ VBA ของ Excel
โดยทั่วไปตัวแปรหนึ่งตัวควรจะเก็บค่าเดียวในแต่ละครั้ง แต่เมื่อเราต้องการเก็บค่าหลายค่าไว้ในตัวแปรเดียวตัวแปรประเภทนั้นจะเรียกว่าตัวแปรอาร์เรย์เพื่อใช้ตัวแปรอาร์เรย์ใน VBA เราจำเป็นต้องประกาศหรือ กำหนดไว้ก่อนเราสามารถกำหนดตัวแปรอาร์เรย์โดยมีความยาวหรือไม่มีความยาว
สมมติว่าหากเรามีข้อมูลที่มีหลายร้อยแถวและหลายคอลัมน์และเราจำเป็นต้องสร้างรหัสที่จะใช้ข้อมูล ตอนนี้ในกรณีนี้เราต้องสร้างตัวแปรทวีคูณที่จะดึงค่าจากเซลล์และมอบให้กับโปรแกรม การสร้างตัวแปรนี้จะต้องเหนื่อยมากและด้วยเหตุนี้เราจึงใช้ Arrays ใน excel
อาร์เรย์เก็บชุดข้อมูลไว้ในหน่วยความจำและไม่จำเป็นต้องให้เราประกาศตัวแปรสำหรับแต่ละค่าที่ต้องดึงข้อมูลจากข้อมูล ความจำเป็นในการใช้อาร์เรย์เป็นเพราะความจริงที่ว่าในตัวแปร excel ได้รับการออกแบบให้เก็บทีละค่าอย่างไรก็ตามเมื่อตัวแปรเก็บค่าหลายค่าจะกลายเป็นอาร์เรย์
- การสร้าง Array ก็เหมือนกับการสร้างหน่วยความจำแยกต่างหากที่สามารถเก็บข้อมูลไว้ในนั้นได้ สำหรับการสร้าง Array ข้อมูลจะต้องเป็นประเภทเดียวกัน
- อาร์เรย์ที่เราให้กับ excel จะต้องสอดคล้องกับประเภทของข้อมูลที่เรามี สมมติว่าหากเรามีข้อมูลที่มีเฉพาะแถวในกรณีนี้เราจะใช้ "อาร์เรย์มิติเดียว" และหากข้อมูลมีคอลัมน์ด้วยเราจะต้องใช้ "อาร์เรย์สองมิติ" เนื่องจากสามารถเก็บค่าได้เท่านั้น จากแถวและคอลัมน์
- อาร์เรย์ยังต้องทำงานเป็นอาร์เรย์แบบไดนามิกหรืออาร์เรย์แบบคงที่ ในขณะที่เรากำหนดช่วงไดนามิกให้กับสูตรเราสามารถสร้างตัวแปร Arrays ได้ อาร์เรย์แบบไดนามิกจะมีฟังก์ชันในการรวมแถวและคอลัมน์จำนวนอินฟินิตี้ ในกรณีที่หากอาร์เรย์ที่เรากำหนดไว้เป็นประเภทคงที่ก็สามารถเก็บแถวและคอลัมน์ได้ในจำนวน จำกัด ตามที่กำหนดไว้ในขณะสร้างอาร์เรย์
คำอธิบาย
Array ทำงานบน“ กฎทางคณิตศาสตร์ของเมทริกซ์” นั่นคือพวกมันระบุข้อมูลตามตำแหน่งเท่านั้น สมมติว่าถ้าเราต้องทำให้ VBA เข้าใจว่าเราต้องการ“ 20” ในเซลล์“ B3” เราต้องเขียนโค้ดของตำแหน่งเป็น (3, 2) โดยที่ค่าแรกหมายถึงตำแหน่งของแถวและค่าที่สองหมายถึง หมายเลขคอลัมน์ ใน excel world รหัสของสถานที่เหล่านี้เรียกว่า "ขอบเขตบน" และ "ขอบเขตล่าง" โดยค่าเริ่มต้นตำแหน่งที่ตั้งใน excel จะเริ่มต้นจากที่เดียวไม่ใช่จากศูนย์ดังนั้น excel จะเห็น "A1" เป็นแถวหมายเลข 0 ไม่ใช่แถวที่ 1
ในทำนองเดียวกันคอลัมน์เริ่มต้นจากศูนย์ไม่ใช่จากที่เดียว
อาร์เรย์เหล่านี้สามารถกำหนดเป็นอาร์เรย์แบบคงที่หรืออาร์เรย์แบบไดนามิก หากเรากำหนดให้เป็นอาร์เรย์แบบคงที่หมายความว่าไม่สามารถเก็บตัวแปรได้มากกว่าที่กำหนดไว้ในขณะที่เข้ารหัส หากเราไม่แน่ใจเกี่ยวกับค่าที่จำเป็นต้องจดจำโดยอาร์เรย์ที่เราสร้างอาร์เรย์แบบไดนามิกและในกรณีเช่นนี้พวกเขาสามารถเก็บค่าจำนวนอินฟินิตี้ได้
หลังจากที่เราเลือกประเภทของอาร์เรย์ที่ต้องการแล้วเราจะต้องป้อนข้อมูลในอาร์เรย์เหล่านี้
ข้อมูลนี้จะต้องได้รับทีละรายการเพื่อให้เก่งด้วยวิธีด้านล่าง
หลังจากจัดเก็บข้อมูลในอาร์เรย์เหล่านี้แล้วข้อมูลเหล่านี้ก็พร้อมที่จะใช้เป็นตัวแปรในการเข้ารหัส VBA
รายชื่ออาร์เรย์ 5 อันดับแรก
- อาร์เรย์แบบคงที่
- ไดนามิกอาร์เรย์
- อาร์เรย์หนึ่งมิติ
- อาร์เรย์สองมิติ
- อาร์เรย์หลายมิติ
มาดูรายละเอียดแต่ละอันกัน
# 1 - อาร์เรย์แบบคงที่
อาร์เรย์ที่มีจำนวนค่าที่กำหนดไว้ล่วงหน้าซึ่งสามารถเก็บไว้ในนั้นได้
# 2 - อาร์เรย์แบบไดนามิก
อาร์เรย์ที่มีจำนวนค่าที่ไม่ได้กำหนดไว้ล่วงหน้าซึ่งสามารถจัดการได้
# 3 - อาร์เรย์หนึ่งมิติ
อาร์เรย์ที่สามารถเก็บเฉพาะข้อมูลจากแถวหรือคอลัมน์
# 4 - อาร์เรย์สองมิติ
อาร์เรย์ที่สามารถจัดเก็บค่าจากแถวและคอลัมน์
# 5 - อาร์เรย์หลายมิติ
วิธีใช้ Arrays ใน VBA (พร้อมตัวอย่าง)?
คุณสามารถดาวน์โหลด Arrays นี้ใน VBA Excel Template ได้ที่นี่ - Arrays ใน VBA Excel Templateอาร์เรย์สามารถใช้ได้ในหลาย ๆ สถานการณ์ แต่ต้องใช้เมื่อจำนวนตัวแปรที่จะประกาศมีจำนวนมากและไม่สามารถประกาศได้
ด้านล่างนี้เป็นตัวอย่างบางส่วน แต่ก่อนที่จะไปที่ตัวอย่างเราจะเรียนรู้การเปิดตัวแก้ไข VBA ด้วยปุ่มทางลัด
ซึ่งจะเป็นการเปิดตัวแก้ไข VBA จากนั้นเราต้องป้อนรหัสใน "แผ่นงานนี้"
ตัวอย่าง # 1
เลือกประเภทของอาร์เรย์ที่คุณต้องการควรเป็นอาร์เรย์แบบไดนามิกหรือคงที่
หากเราต้องการอาร์เรย์แบบไดนามิกเราจะกำหนดมิติข้อมูลเป็น "ตัวแปร"
หากเราต้องการอาร์เรย์แบบคงที่เราจะกำหนดมิติข้อมูลเป็น "คงที่"
ตัวอย่าง # 2
กำหนดคอลัมน์และแถวที่คุณต้องการให้อาร์เรย์จัดเก็บ
หากเราป้อน“ 1” ในวงเล็บหมายความว่าอาร์เรย์สามารถเก็บค่าได้ 2 แถวเมื่อการนับ excel เริ่มจากศูนย์
หากเราต้องการคอลัมน์และแถวเราจำเป็นต้องกำหนดทั้งสองอย่าง
ในที่นี้“ 1 ถึง 2” หมายความว่าสองแถวและ“ 1 ถึง 3” หมายถึงสามคอลัมน์
ที่นี่เราได้เปลี่ยนกฎว่า excel นับแถวอย่างไรและขอให้นับจาก“ 1” ไม่ใช่จากศูนย์
ตัวอย่าง # 3
การป้อนข้อมูลในอาร์เรย์
ข้อมูลต้องเข้าสู่เซลล์ที่ชาญฉลาด ที่นี่ข้อมูลจะถูกป้อนในรูปแบบของ (I, j) โดยที่“ I” หมายถึงแถวและ“ J” หมายถึงคอลัมน์
ดังนั้น“ a (1,1”) จึงหมายความว่าเซลล์” A1”
ตัวอย่าง # 4
การปิดรหัส
หลังจากป้อนข้อมูลสำหรับอาร์เรย์แล้วขั้นตอนสุดท้ายคือการปิดรหัส
สิ่งที่ต้องจำ
- ตามค่าเริ่มต้น Excel จะนับแถวที่เริ่มต้นจากศูนย์ ซึ่งหมายความว่า“ 2” แทนที่“ I” จะหมายถึง 3 แถวไม่ใช่ 2 แถว เช่นเดียวกับ“ J”
- ข้อมูลที่ต้องป้อนสำหรับอาร์เรย์ต้องเริ่มต้นจาก (0, 0) ที่มาจากแถวแรกและคอลัมน์แรก
- ในกรณีที่เรากำลังใช้อาร์เรย์แบบไดนามิกสิ่งนี้จะต้องมีฟังก์ชันของ“ VBA REDIM” เพื่อกำหนดจำนวนแถวและคอลัมน์ที่จำเป็นในการจดจำ
- ในกรณีที่สร้างอาร์เรย์สองมิติเราต้องใช้ "จำนวนเต็ม" เป็นมิติข้อมูล
- ต้องบันทึกไฟล์ excel ในเวอร์ชันที่“ เข้ากันได้กับมาโคร” มิฉะนั้นการเข้ารหัสที่เราทำใน VBA จะหายไปและจะไม่ทำงานในครั้งต่อไป