Excel - макрос для передачи данных из строк в столбцы
вопрос
Данные теперь в следующем формате1 2 39 15 16 20 25
1
Это должно прийти в этом формате
12
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