ย้ายข้อมูลในคอลัมน์เป็นแถวลงด้านล่าง


0

ฉันกำลังทำงานกับโครงการ Excel VBA ฉันมีข้อมูลในไฟล์ excel เช่นนี้ (ตัวอักษรแต่ละตัวในแต่ละเซลล์) ฉันมีหลายบรรทัดเช่นนี้และแต่ละบรรทัดจะมีข้อมูลใน 6 เซลล์แรกแน่นอนโดยมีจำนวนตัวแปร 2 เซลล์ต่อจากนั้น

a b c d e f g h ฉันเจ

k l m n o p q r s t

ฉันต้องการแปลงเป็น:

a b c d e f 
        g h
        i j 
k l m n o p
        q r
        s t

ฉันจะแปลงค่าได้อย่างไร


'Transpose' เป็นคำที่ง่าย แต่สิ่งที่ดูเหมือนว่าคุณต้องการคือโปรแกรม vba ที่จะทำสิ่งนี้ สำหรับ Excel นี่มันเกินความสามารถของฉัน แต่ฉันใช้ vba ใน Access เพื่อทำสิ่งนี้ คุณอาจมองหาหนังสือที่ดีที่แสดงวิธีใช้ vba กับ Excell (หรือ Excel กับ VBA)
Elliptical view

ฉันไม่เข้าใจเลยว่าคุณกำลังทำอะไรอยู่ ตัวแปรถูกกำหนดอย่างไร?
Raystafarian

คำตอบ:


0

แมโครขนาดเล็กนี้จะใช้ข้อมูลจาก Sheet1 และวางลงบน Sheet2 ในรูปแบบที่จัดระเบียบใหม่:

Sub DataReOrganizer()
    Dim s1 As Worksheet, s2 As Worksheet
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    Dim r1 As Long, r2 As Long, c1 As Long
    Dim N1 As Long
    N1 = Cells(Rows.Count, 1).End(xlUp).Row
    r1 = 1
    r2 = 1
    c1 = 7
    For i = 1 To N1
        s1.Range("A" & r1 & ":F" & r1).Copy s2.Range("A" & r2)
        r2 = r2 + 1
        While s1.Cells(r1, c1) <> ""
            s1.Range(s1.Cells(r1, c1), s1.Cells(r1, c1 + 1)).Copy s2.Range("G" & r2)
            c1 = c1 + 2
            r2 = r2 + 1
        Wend
        r1 = r1 + 1
        c1 = 7
    Next i
End Sub

ฉันมีปัญหาแม้ว่า ... หากเซลล์ที่มี "g" ว่างเปล่าจะไม่คัดลอก "i" และ "j" ... ฉันจะแก้ไขได้อย่างไร
user3159346
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.