Excel - макрос для передачи данных из строк в столбцы

вопрос

Данные теперь в следующем формате

 1 2 3

9 15 16 20 25

1

Это должно прийти в этом формате

 1

2

3

9

15

16

20

25

1

Решение

Предположения:
  • 1. Данные начинаются со строки 1 и всегда должны копироваться в столбец A
  • 2. Строки могут быть вставлены без искажения данных

 Sub TransposeSpecial ()

Dim lMaxRows As Long 'max строк на листе

Dim lThisRow As Long 'строка обрабатывается

Dim iMaxCol As Integer 'максимально используемый столбец в обрабатываемой строке

lMaxRows = Cells (Rows.Count, "A"). End (xlUp) .Row

lThisRow = 1 'начать с строки 1

Делай пока lThisRow <lMaxRows

iMaxCol = Cells (lThisRow, Columns.Count) .End (xlToLeft) .Column

Если (iMaxCol> 1), то

Строки (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1). Вставить

Range (Ячейки (lThisRow, 2), Ячейки (lThisRow, iMaxCol)). Копировать

Диапазон ("A" & lThisRow + 1). Выберите

Selection.PasteSpecial Paste: = xlPasteAll, операция: = xlNone, SkipBlanks: = False, транспонирование: = True

Range (Cells (lThisRow, 2), Cells (lThisRow, iMaxCol)). Очистить

lThisRow = lThisRow + iMaxCol - 1

lMaxRows = Cells (Rows.Count, "A"). End (xlUp) .Row

End If

lThisRow = lThisRow + 1

петля

End Sub

Обратите внимание, что

Спасибо rizvisa1 за этот совет на форуме.
Предыдущая статья Следующая статья

Лучшие советы