เราได้เห็นฟังก์ชันทรานสโพสในแผ่นงาน excel เมื่อเราวางตารางข้อมูลลงในแผ่นงานสิ่งที่ทรานสโพสทำก็คือมันเปลี่ยนตำแหน่งของแถวและคอลัมน์เช่นแถวกลายเป็นคอลัมน์และคอลัมน์จะกลายเป็นแถวในตารางข้อมูลตอนนี้เนื่องจากเป็นเวิร์กชีต ฟังก์ชันใน VBA เราใช้กับเมธอด Application.worksheet ใน VBA
วิธีการเปลี่ยนใน VBA
การสลับแถวและคอลัมน์เป็นหนึ่งในเทคนิคการจัดการข้อมูลที่ผู้ใช้เกือบทั้งหมดทำใน excel กระบวนการแปลงข้อมูลแนวนอนเป็นข้อมูลแนวตั้งและแนวตั้งเป็นแนวนอนเรียกว่า "Transpose" ใน excel ฉันแน่ใจว่าคุณต้องคุ้นเคยกับ Transposing ในแผ่นงานปกติในบทความนี้เราจะแสดงวิธีใช้วิธีการเปลี่ยนในการเข้ารหัส VBA
เราสามารถเปลี่ยน VBA ได้โดยใช้สองวิธี
- เปลี่ยนโดยใช้สูตร TRANSPOSE
- เปลี่ยนโดยใช้วิธีการวางแบบพิเศษ
เมื่อเรากำลังเปลี่ยนตำแหน่งเราจะสลับแถวเป็นคอลัมน์และคอลัมน์เป็นแถว ตัวอย่างเช่นหากข้อมูลอยู่ในอาร์เรย์ 4 X 3 ก็จะกลายเป็นอาร์เรย์ 3 X 4
มาดูตัวอย่างการเปลี่ยนคอลัมน์เป็นแถวใน VBA
# 1 - VBA เปลี่ยนโดยใช้สูตร TRANSPOSE
เช่นเดียวกับที่เราใช้ TRANSPOSE ใน excel ในทำนองเดียวกันเราสามารถใช้สูตร TRANSPOSE ใน VBA ได้เช่นกัน เราไม่มีสูตร TRANSPOSE ใน VBA ดังนั้นเราจำเป็นต้องใช้ภายใต้คลาสฟังก์ชันแผ่นงาน
ดูตัวอย่างได้จากภาพข้อมูลด้านล่าง
เราจะพยายามเปลี่ยนอาร์เรย์ของค่านี้ ทำตามขั้นตอนด้านล่างเพื่อเปลี่ยนข้อมูล
ขั้นตอนที่ 1:เริ่มกระบวนการย่อย
รหัส:
Sub Transpose_Example1 () End Sub
ขั้นตอนที่ 2:ขั้นแรกเราต้องตัดสินใจว่าเราจะย้ายข้อมูลไปที่ใด ในสิ่งนี้ฉันเลือกที่จะเปลี่ยนจากเซลล์ D1 เป็น H2 ดังนั้นป้อนรหัส VBA เป็นช่วง (“ D1: H2”) ค่า =
รหัส:
Sub Transpose_Example1 () ช่วง ("D1: H2") ค่า = End Sub
ขั้นตอนที่ 3:ในช่วงที่กล่าวถึงข้างต้นเราต้องการค่าของช่วง A1 ถึง B5 เมื่อต้องการมาถึงคลาส "ฟังก์ชันแผ่นงาน" ที่เปิดอยู่นี้และเลือกสูตร "เปลี่ยนภาพ"
ขั้นตอนที่ 4:ในArg 1การจัดหาแหล่งข้อมูลช่วงคือช่วง (“A1: D5”)
รหัส:
Sub Transpose_Example1 () Range ("D1: H2"). Value = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub
ตกลงเราเสร็จสิ้นการเข้ารหัสสูตร TRANSPOSE ตอนนี้เรียกใช้รหัสเพื่อดูผลลัพธ์ในช่วง D1 ถึง H2 ของเซลล์
ดังที่เราได้เห็นภาพด้านบนมันได้แปลงช่วงของเซลล์จากคอลัมน์เป็นแถว
# 2 - การเปลี่ยน VBA โดยใช้วิธีการวางแบบพิเศษ
เรายังสามารถเปลี่ยนโดยใช้วิธีการวางแบบพิเศษ พิจารณาข้อมูลเดียวกันสำหรับตัวอย่างนี้ด้วย
สิ่งแรกที่เราต้องทำเพื่อเปลี่ยนคือการคัดลอกข้อมูล ดังนั้นเขียนโค้ดเป็นRange (“ A1: B5”) คัดลอก
รหัส:
Sub Transpose_Example2 () ช่วง ("A1: B5") คัดลอก End Sub
สิ่งต่อไปคือเราต้องตัดสินใจว่าเราจะวางข้อมูลที่ไหน ในกรณีนี้ฉันได้เลือก D1 เป็นเซลล์ปลายทางที่ต้องการ
รหัส:
Sub Transpose_Example2 () ช่วง ("A1: B5") ช่วงการคัดลอก ("D1") End Sub
เมื่อเลือกเซลล์ปลายทางที่ต้องการแล้วเราจะต้องเลือก“ Paste Special Method”
ด้วยการวางแบบพิเศษเราสามารถดำเนินการทั้งหมดที่มีด้วยวิธีการวางแบบพิเศษในแผ่นงาน
ละเว้นพารามิเตอร์ทั้งหมดและเลือกพารามิเตอร์สุดท้ายเช่น Transpose และทำให้เป็น TRUE
รหัส:
Sub Transpose_Example2 () ช่วง ("A1: B5") ช่วงการคัดลอก ("D1") PasteSpecial Transpose: = True End Sub
นอกจากนี้ยังจะเปลี่ยนข้อมูลเหมือนวิธีก่อนหน้านี้
ด้วยวิธีนี้เราสามารถใช้สูตร TRANSPOSE หรือวิธีการวางแบบพิเศษเพื่อเปลี่ยนข้อมูลเพื่อสลับแถวเป็นคอลัมน์และคอลัมน์เป็นแถว
สิ่งที่ต้องจำ
- ถ้าเรากำลังใช้ฟังก์ชันแผ่นงาน TRANSPOSE จำเป็นต้องคำนวณจำนวนแถวและคอลัมน์เพื่อเปลี่ยนข้อมูล ถ้าเรามี 5 แถวและ 3 คอลัมน์ในขณะที่ย้ายมันจะกลายเป็น 3 แถวและ 5 คอลัมน์
- หากคุณต้องการรูปแบบเดียวกันในขณะที่ใช้การวางแบบพิเศษคุณต้องใช้อาร์กิวเมนต์ Paste Type เป็น“ xlPasteFormats”
คุณสามารถดาวน์โหลด VBA Transpose Excel Template ได้จากที่นี่ - VBA Transpose Excel Template