Excel - макрос за прехвърляне на данни от редове в колони

Проблем

Сега данните са в следния формат

 1 2 3

9 15 16 20 25

1

Това трябва да дойде в този формат

 1

2

3

9

15

16

20

25

1

Решение

Предположения:
  • 1. Данните започват от ред 1 и трябва винаги да се копират в колона А
  • 2. Редовете могат да бъдат вмъкнати без изкривяване на данните

 Sub TransposeSpecial ()

Намалете lMaxRows As Long 'макс. Редове в листа

Редът се променя

Dim iMaxCol As Integer използва макс. Колона в реда, който се обработва

lMaxRows = Клетки (Rows.Count, "A"). Край (xlUp).

lThisRow = 1 'започва от ред 1

Докато lThisRow <lMaxRows

iMaxCol = Клетки (lThisRow, Columns.Count). End (xlToLeft).

Ако (iMaxCol> 1) тогава

Редове (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1).

Обхват (клетки (lThisRow, 2), клетки (lThisRow, iMaxCol)).

Обхват ("A" & lThisRow + 1) .Изберете

Selection.PasteSpecial Paste: = xlPasteAll, Операция: = xlNone, SkipBlanks: = False, Transpose: = True

Обхват (клетки (lThisRow, 2), клетки (lThisRow, iMaxCol)).

lThisRow = lThisRow + iMaxCol - 1

lMaxRows = Клетки (Rows.Count, "A"). Край (xlUp).

Край Ако

lThisRow = lThisRow + 1

контур

Край Под

Отбележи, че

Благодарение на rizvisa1 за този съвет на форума.
Предишна Статия Следваща Статия

Топ Съвети