วิธีการย้ายช่วงใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *