Я хочу перенести цикл из 5 столбцов и 100 строк в 1 строку - PullRequest
1 голос
/ 03 декабря 2010

У меня есть 5 столбцов и 100 строк информации, которые мне нужно поместить в один горизонтальный ряд.

например:

красный зеленый синий желтый красный зелёный синий жёлтый красный зелёный синий жёлтый ЭСТ ...

до

красный зеленый синий желтый красный зеленый синий желтый желтый красный зеленый синий желтый ... т. Д.

помогите, я понятия не имею, как создать макрос, поэтому будьте как можно более простыми! спасибо

1 Ответ

0 голосов
/ 03 декабря 2010

Вот код, который выполняет транспонирование на том же листе.Измените строки и столбцы, как требуется.Надеюсь, вы знаете, как открыть редактор VBA и запустить макрос.

Sub transpose()
Dim row
Dim targetRow
Dim targetColumn
Dim column
Dim columnMin
Dim columnMax
Dim rowMin
Dim rowMax
Dim tmp

rowMin = 1
rowMax = 2
columnMin = 1
columnMax = 5

targetColumn = 7
targetRow = 1

row = rowMin
While row <= rowMax

    column = columnMin

    While column <= columnMax

        Cells(row, column).Select
        tmp = ActiveCell.Value
        Cells(targetRow, targetColumn).Select
        ActiveCell.Value = tmp
        targetRow = targetRow + 1
        column = column + 1

    Wend

    row = row + 1

Wend

End Sub

То, что это делает, - это циклы над каждой необходимой строкой.Начните с первого столбца, который требуется.Перебирает каждый столбец в этой строке, получает значение и помещает в целевую строку и столбец.Затем увеличьте целевую строку.

Я надеюсь, что здесь достаточно примера кода, чтобы вы могли самостоятельно внести изменения для решения вашей конкретной проблемы.

'edit Черт.Просто заметил, что вопрос задан для 1 строки, но это делает 1 столбец.Не должно быть слишком сложно изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...