Excel - makro do przesyłania danych z wierszy do kolumn

Kwestia

Dane są teraz w poniższym formacie

 1 2 3

9 15 16 20 25

1

To musi mieć ten format

 1

2

3

9

15

16

20

25

1

Rozwiązanie

Założenia:
  • 1. Dane zaczynają się od wiersza 1 i należy je zawsze kopiować do kolumny A
  • 2. Wiersze można wstawiać bez zniekształceń do danych

 Sub TransposeSpecial ()

Przyciemnij maksymalne wiersze lMaxRows As Long w arkuszu

Trwa przetwarzanie wiersza Dim lThisRow As Long

Dim iMaxCol As Integer 'max używana kolumna w przetwarzanym wierszu

lMaxRows = Komórki (Rows.Count, "A"). End (xlUp) .Row

lThisRow = 1 'zaczyna się od wiersza 1

Do While lThisRow <lMaxRows

iMaxCol = Komórki (lThisRow, Columns.Count) .End (xlToLeft) .Column

Jeśli (iMaxCol> 1) Następnie

Wiersze (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1). Wstaw

Zakres (komórki (lThisRow, 2), komórki (lThisRow, iMaxCol)).

Zakres („A” i lThisRow + 1). Wybierz

Selection.PasteSpecial Paste: = xlPasteAll, Operation: = xlNone, SkipBlanks: = False, Transpose: = True

Zakres (komórki (lThisRow, 2), komórki (lThisRow, iMaxCol)).

lThisRow = lThisRow + iMaxCol - 1

lMaxRows = Komórki (Rows.Count, "A"). End (xlUp) .Row

Zakończ jeśli

lThisRow = lThisRow + 1

Pętla

Napis końcowy

Zauważ, że

Dziękujemy rizvisa1 za tę poradę na forum.
Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki