วิธีการย้ายช่วงใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อเปลี่ยนช่วงโดยใช้ VBA:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
ตัวอย่างนี้จะย้ายเซลล์ในช่วง A1:B5 และแสดงช่วงย้ายเริ่มต้นในเซลล์ D1
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีการย้ายช่วงใน VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
สมมติว่าเราต้องการย้ายช่วง A1:B5 และแสดงช่วงที่ย้ายโดยเริ่มต้นในเซลล์ D1
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดทราบว่าช่วงที่ย้ายจะแสดงโดยเริ่มต้นในเซลล์ D1
กล่าวอีกนัยหนึ่ง แถวและคอลัมน์จะกลับกัน
หากต้องการเปลี่ยนช่วงอื่น เพียงแทนที่ A1:B5 ในมาโครด้วยช่วงอื่น
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับวิธี VBA Transpose ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS