Я работаю над проектом Excel VBA. У меня есть данные в файле Excel как таковые (каждый алфавит в каждой ячейке). У меня много строк как таковых, и каждая строка обязательно будет содержать данные в первых 6 ячейках, с последующим переменным числом 2 ячейки в каждой.

ABCDEFGHIJ

klmnopqrst

Я хочу преобразовать это как так:

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

Как мне транспонировать значения?

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .