Excel - makro andmete edastamiseks ridadest veergudele

Probleem

Andmed on nüüd allpool

 1 2 3

9 15 16 20 25

1

See peab olema sellisel kujul

 1

2

3

9

15

16

20

25

1

Lahendus

Eeldused:
  • 1. Andmed algavad reas 1 ja need kopeeritakse alati veergu A
  • 2. Ridu saab sisestada ilma andmete moonutamiseta

 Sub TransposeSpecial ()

Dim lMaxRows lehel on pikad maksimaalsed read

Dim lThisRow As Long on töödeldav

Dim iMaxCol Nagu Integer 'max kasutatud veerg töödeldavas reas

lMaxRows = Rakud (read.Count, "A"). End (xlUp).

lThisRow = 1 'algab 1. real

Tehke lThisRow <lMaxRows

iMaxCol = Rakud (lThisRow, Columns.Count) .End (xlToLeft).

Kui (iMaxCol> 1) siis

Read (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1).

Vahemik (rakud (lThisRow, 2), rakud (lThisRow, iMaxCol)).

Vahemik ("A" & lThisRow + 1) .Vali

Selection.PasteSpecial Paste: = xlPasteAll, operatsioon: = xlNone, SkipBlanks: = False, transponeeri: = True

Vahemik (rakud (lThisRow, 2), rakud (lThisRow, iMaxCol)).

lThisRow = lThisRow + iMaxCol - 1

lMaxRows = Rakud (read.Count, "A"). End (xlUp).

Lõpeta kui

lThisRow = lThisRow + 1

Loop

Lõpeta alam

Pange tähele, et

Täname rizvisa1 selle foorumi vihje eest.
Eelmine Artikkel Järgmine Artikkel

Top Näpunäited