VBA Transpose (ทีละขั้นตอน) | 2 วิธียอดนิยมในการเปลี่ยนใน VBA

เราได้เห็นฟังก์ชันทรานสโพสในแผ่นงาน excel เมื่อเราวางตารางข้อมูลลงในแผ่นงานสิ่งที่ทรานสโพสทำก็คือมันเปลี่ยนตำแหน่งของแถวและคอลัมน์เช่นแถวกลายเป็นคอลัมน์และคอลัมน์จะกลายเป็นแถวในตารางข้อมูลตอนนี้เนื่องจากเป็นเวิร์กชีต ฟังก์ชันใน VBA เราใช้กับเมธอด Application.worksheet ใน VBA

วิธีการเปลี่ยนใน VBA

การสลับแถวและคอลัมน์เป็นหนึ่งในเทคนิคการจัดการข้อมูลที่ผู้ใช้เกือบทั้งหมดทำใน excel กระบวนการแปลงข้อมูลแนวนอนเป็นข้อมูลแนวตั้งและแนวตั้งเป็นแนวนอนเรียกว่า "Transpose" ใน excel ฉันแน่ใจว่าคุณต้องคุ้นเคยกับ Transposing ในแผ่นงานปกติในบทความนี้เราจะแสดงวิธีใช้วิธีการเปลี่ยนในการเข้ารหัส VBA

เราสามารถเปลี่ยน VBA ได้โดยใช้สองวิธี

  1. เปลี่ยนโดยใช้สูตร TRANSPOSE
  2. เปลี่ยนโดยใช้วิธีการวางแบบพิเศษ

เมื่อเรากำลังเปลี่ยนตำแหน่งเราจะสลับแถวเป็นคอลัมน์และคอลัมน์เป็นแถว ตัวอย่างเช่นหากข้อมูลอยู่ในอาร์เรย์ 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